python动态实例化(python的类中怎么实现动态化函数)

1.python的类中怎么实现动态化函数

给你这样一个例子吧,这个例子里面有动态增加类的函数。

声明一个类,类初始化的时候读取配置文件,根据配置列表加载特定目录下的模块下的函数,函数和模块同名,将此函数动态加载为类的成员函数。代码如下所示:class WinBAS(Bas): def __init__(self): self.__baslist = {} self.__Init_Modules() pass def __Init_Modules(self): import modplugs for m in modplugs.__moduleset__: mh = __import__('modules.' + m)# + '.' + m) ma = getattr(mh, m)# + '.' + m) ma = getattr(ma, m) setattr(self.__class__, m, ma)modplugs.py是模块配置文件如下:__moduleset__ = ['BAS_GetUserList',]然后建立目录modules下面建立一个空的__init__.py文件,把目录变为一个包,在modules目录下建立真正的BAS_GetUserList实现:BAS_GetUserList文件中有个BAS_GetUserList函数如下:def BAS_GetUserList(self, strs): return [0, strs]这样WinBAS类就可以动态加入了BAS_GetUserList函数。

2.python 类实例化

1、python的类中,以__(两个下划线)开头但不以__结束的就是私有的变量或者函数,私有函数和变量不能在class外调用到。

class test:

def __init__(self, num):

self.__num = num

privateTest = test(100)

privateTest.__num#会报错

当然也有办法调到,只是不建议那样做。

2、第一个class se()中的 变量s,是一个类变量,是class se的变量,类变量可以被类本身访问,如se.s,也可以被各个对象访问,而且由于是存在class里的所以值唯一,有点像C++里的static。

但是如果有某一个对象也创建了一个叫s的变量 覆盖了类变量,那么那个self.s就是对象的属性,而不会调到类变量。

你可以运行试试

# -*- coding: cp936 -*-

class A:

name = []

def __init__(self, name):

self.name.append(name)

def nameMyself(self, name):

self.name = [name]

print 'my name is',self.name, 'and class A1name is :', A.name

def test(self):

print "my name is", self.name

obj = A("num0")

obj1 = A("num1")

print "obj1`name", obj1.name#对象访问类变量name

print "class A`name", A.name#class自己访问类变量name

obj1.test()#此时还是访问的类变量name

obj1.nameMyself('aid')#给自己起个名覆盖类变量的name

obj1.test()#对于obj1来说只能访问自己的name了

print "class A`name", A.name#类变量依然存在

3.Python中类是怎么实例化的

定义一个类封装所有的属性,然后把这个类的对象作为返回值。

不知道是不是你要的意思: (self,nodes,city,state,description=None):self.nodes=nodesself.city=cityself.state=stateself.description=descriptiondefnode_by_name(nodes,city,state):#='NORTHCAMBRIDGE'returnNode(nodes,city,state,description)ans=node_by_name('testNode','CAMBRIDGE','MA')printans.state,ans.description。

4.python中实例方法、静态方法和类方法的使用场景

1.对象方法:归属于实例(类创建出的对象),需要访问对象属性的方法定义为实例方法

2.静态方法:不需要访问实例属性和实例方法,比如创建对象前,进行实例化参数验证的方法,先于实例化的存在。这个时候可以使用静态方法。

3.类方法:需要获取和类相关的属性或方法时,可以使用类方法,第一个参数约定名为cls,它代表的是当前类相关的信息的对象(类本身也是一个对象,有的地方也称之为类的元数据对象),通过这个参数我们可以获取和类相关的信息并且可以创建出类的对象,深入了解可以搜索黑马程序员视频库,里面有很多免费的软件测试教程

5.python 类当函数如何实例化

可以把类当做参数传入到函数里,在函数里进行实例化。如下所示。

把类A当做参数传入get_instance_from_class。在get_instance_from_class中对A进行实例化,获得其实例,并返回。

class A:

def __init__(self):

print "I am a A instance."

def print_myself(self):

print "print myself."

def main():

def get_instance_from_class(a):

return a()

a = get_instance_from_class(A)

a.print_myself()

if __name__=="__main__":

main()

6.关于python动态添加属性和方法的意义

通过对象的实例,在外部为其添加属性,这种做法应该是很少见的。

原因很简单:破坏封装。虽然Python可以做到,但并不代表随意使用这种做法是妥当的。

添加的属性可以和原有的组合使用的,有回答已经给出了例子。我觉得有必要提一下self或者说方法的第一个参数是什么。

图片可以看出,self其实不像C++或Java中的this。其实它只是个名字,是个参数。

你完全可以取任何合法的变量名。当然,不建议使用self以外的变量名。

其次,self实际上就是实例的引用,和实例化并赋值到t的对象是同一个。这一定程度上可以解释为什么外部可以为实例创建属性。

因为在__init__方法中通过self创建属性(self.val = 0)和通过外部引用创建属性(t.val = 0)没有本质区别。至于“通过类创建属性”,这种做法是可以达到共有的:需要注意的是,通过实例为类属性赋值[7],会“遮盖”类属性。

即,赋值只是为实例的属性赋值,而未改动类的属性。需要改动类属性的话,应该使用类名的方式。

感兴趣的话可以查查Python的Mixin,这是通过动态继承添加属性和方法的做法。

7.python中,如何在初始化实例时,动态为其添加属性

代码看起来没有问题。如果在python3上不能用,应该也只需要小小的调整。原则上应该跑得通。

不过话说回来,这样的技巧通常在python里用不上。因为python的强大并不是因为它的面向对象属性。

而且这些写代码的可读性也较差。 python的强大在于它通用,它与C的良好结合,最重要的是它是“脚本”。 可以动态的做任何事情,既然它的动态很强大,你就不需要写这样的代码。

直接这样

s1= AnyClass()

s1.any_variable = some_value

这样足够了。因为python可以自动给未知的变量,增加一个内部属性。所以我经常写下面的这样的代码

class Config:

pass

conf = Config()

conf.mysql_ip = "127.0.0.1"这样就可以了

8.Python中的类为什么要实例化为一个对象才能使用

打个比方:

class 人类(object):

def __init__(self,性别,年龄,姓名等等):

self.性别=性别

self.年龄=年龄

self.姓名=姓名

def 说话(self,要说的话):

print(要说的话)

小明=人类(男,3岁,小明)

小明.说话('你好!')

类就好比是一类事物的抽象,是一个模板,拥有这一类事物的属性和功能。但是对于“人类”这个类来说,每个人的属性和要做的事又是不一样的,所以需要实例化,实例对象就是“人类”这个类的具体对象,后续就通过“小明”这个实例对象进行操作。

转载请注明出处代码入门网 » python动态实例化(python的类中怎么实现动态化函数)

资讯

python开发游戏脚本(游戏开发中常用哪种脚本语言)

阅读(75)

本文主要为您介绍python开发游戏脚本,内容包括python怎么写游戏脚本,python怎么写游戏脚本,python可以做游戏吗。一般大型的商业游戏引擎有自己的脚本语言,比如Unreal3就有自己的一套Unreal Script ,Unity3d可以用C#、Java

资讯

python2.764位pil(win764位怎么安装python和nltk)

阅读(29)

本文主要为您介绍python2.764位pil,内容包括win764位系统安装了python2.7又安装了PIL第三方64位模块在使用时,win764位怎么安装python和nltk,python哪个版本可以加pil。你装的是什么版本的python。如果你是2.7版本,并且电脑是64位机器。建议

资讯

pythondlib使用(dlib库,怎么在python中安装)

阅读(27)

本文主要为您介绍pythondlib使用,内容包括dlib库,怎么在python中安装,如何线上部署用python基于dlib写的人脸识别算法,如何使用dlib库。这几天刚好用到Python,其中用到了Dlib库的人脸对齐算法。python中需要用到import dlib.pyd文件,这个文件

资讯

python判断是否存在函数(python怎么判断文件是否存在)

阅读(37)

本文主要为您介绍python判断是否存在函数,内容包括Python中如何判断一个对象是否为函数,python怎么判断文件是否存在,[Python基础]如何判断一个变量是否存在。正文 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使

资讯

matlabpythonspss(学统计学应该学哪个软件)

阅读(27)

本文主要为您介绍matlabpythonspss,内容包括SPSS、Mathematica、MATLAB、STATA、Python哪个上手比较快,SAS,SPSS,Matlab,Mathematic,R,Python各用于什么行业和职位,做数据分析里Python能做,而MATLAB不能做的。MATLAB就不要用了吧,除非你想做

资讯

python库知乎(python图像处理库哪个好知乎)

阅读(80)

本文主要为您介绍python库知乎,内容包括python图像处理库哪个好知乎,python图像处理库哪个好知乎,Python常用的标准库以及第三方库。#coding:utf-8#使用的库import csv,os,sysimport xlwt,xlrdfrom xlrd import

资讯

python是否可迭代(python判断是否能够迭代)

阅读(27)

本文主要为您介绍python是否可迭代,内容包括python里哪些是可迭代对象,python判断是否能够迭代,python判断是否能够迭代。方法是通过collections模块的Iterable类型判断:>>> from collections import Iterable

资讯

pythonstdcall(python生成shellcode库有哪些)

阅读(83)

本文主要为您介绍pythonstdcall,内容包括python生成shellcode库,python怎么安装xlrd,我会Python,且第三方系统有接口,我应该如何通过Python去调用第。python中有个概念叫模块,模块中包含了定义的函数,方便重用。使用模块的语句如下:import 模

资讯

python秒数转时间(python将这个时间格式转化为秒数)

阅读(39)

本文主要为您介绍python秒数转时间,内容包括python将这个时间格式转化为秒数,Python函数将秒到分钟,小时,天问题,怎么解决,利用Python怎么得到现在时间的秒数并转换为整型。先把时间格式“1:23:20:27.00” 转化为字符串s1="1:23:20:27.00"#a=

资讯

python数据采集教程(如何用最简单的Python爬虫采集整个网站)

阅读(26)

本文主要为您介绍python数据采集教程,内容包括如何用最简单的Python爬虫采集整个网站,python做监控数据采集,怎么做.新手请教,如何学习爬虫技术抓取数据。在之前的文章中Python实现“维基百科六度分隔理论“之基础爬虫,我们实现了在一个网站

资讯

python小数点保留1位(如何在Python中保留小数)

阅读(13)

本文主要为您介绍python小数点保留1位,内容包括如何在Python中保留小数,Python中小数点的问题,怎么放弃后面位数,只保留前面两位搜狗,python中保留几位小数进行四舍五入的round函数自身的源代码是什么。f = lambda x, n: round(x, n - len(

资讯

python写入文件编码格式(python2.7.4怎么指定格式编码的文本)

阅读(12)

本文主要为您介绍python写入文件编码格式,内容包括python写文件怎么写gbk编码的文件,python2.7.4怎么指定格式编码的文本,python2.7.4怎么指定格式编码的文本。要写入的数据本身就是byte串(u中文是中文字符串,中文是byte串),用二进制方式打开就

资讯

python开发游戏脚本(游戏开发中常用哪种脚本语言)

阅读(75)

本文主要为您介绍python开发游戏脚本,内容包括python怎么写游戏脚本,python怎么写游戏脚本,python可以做游戏吗。一般大型的商业游戏引擎有自己的脚本语言,比如Unreal3就有自己的一套Unreal Script ,Unity3d可以用C#、Java

资讯

python2.764位pil(win764位怎么安装python和nltk)

阅读(29)

本文主要为您介绍python2.764位pil,内容包括win764位系统安装了python2.7又安装了PIL第三方64位模块在使用时,win764位怎么安装python和nltk,python哪个版本可以加pil。你装的是什么版本的python。如果你是2.7版本,并且电脑是64位机器。建议

资讯

pythondlib使用(dlib库,怎么在python中安装)

阅读(27)

本文主要为您介绍pythondlib使用,内容包括dlib库,怎么在python中安装,如何线上部署用python基于dlib写的人脸识别算法,如何使用dlib库。这几天刚好用到Python,其中用到了Dlib库的人脸对齐算法。python中需要用到import dlib.pyd文件,这个文件

资讯

python判断是否存在函数(python怎么判断文件是否存在)

阅读(37)

本文主要为您介绍python判断是否存在函数,内容包括Python中如何判断一个对象是否为函数,python怎么判断文件是否存在,[Python基础]如何判断一个变量是否存在。正文 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使

资讯

matlabpythonspss(学统计学应该学哪个软件)

阅读(27)

本文主要为您介绍matlabpythonspss,内容包括SPSS、Mathematica、MATLAB、STATA、Python哪个上手比较快,SAS,SPSS,Matlab,Mathematic,R,Python各用于什么行业和职位,做数据分析里Python能做,而MATLAB不能做的。MATLAB就不要用了吧,除非你想做

资讯

window7安装python(如何在win7下安装Python及配置)

阅读(47)

本文主要为您介绍window7安装python,内容包括如何在win7下安装Python及配置,如何在win7下安装Python及配置,怎么在win7上安装python。安装配置如下:下载安装 Python如下载 Python 2.6,安装目录为 C:\Python26添加环境变量path =C:\Pyt