1. python如何每次调用函数,实例化一个类
1、定义一个类。
2、定义一个函数,在函数此老内部创建类迹扒帆的实例对象。
3、在函数内部创建的类实例对象需要在函数外部使用,可以姿雹将该对象作为函数返回值返回。
2. python 类当函数如何实例化
可以把类当做参数传入到函数里,在函数里进行实例化。如下所示。
把类A当做参数传入get_instance_from_class。在get_instance_from_class中对A进行实例化,获得其实例,并返回。
classA:
def__init__(self):
print"IamaAinstance."
defprint_myself(self):
print"printmyself."
defmain():
defget_instance_from_class(a):
returna()
a=get_instance_from_class(A)
a.print_myself()
if__name__=="__main__":
main()
3. python类的实例化问题
你没有理解类变量和实例变量之间的关系。
第一个例子里面init中append是对类变量的操作。因此实例谈轮明对象newmen1/2并没有自己的变量a,访问的都桐嫌是类变量。
这时你如果显示类变量,
print Men.a,newmen1.a,newmen2.a都是一样的。指向同一变量。
第二个例子中的init生成了对象自己的变量a,注意'='! 当实例对象调用init时,每个实例对象都拥有了自己的变量a,你再也无法再通过实含告例对象来访问到类变量了。事实上这种写法是很不好的。
这时你可以再一次显示类变量,
print Men.a,newmen1.a,newmen2
>> 0 1 2
如果你希望所有对象共用类变量,你可以写
class Men:
a=0
def __init__(self,b):
Men.a=b
def sayHi(self):
print'Hello,my name is',Men.a
这样反而清晰,不要把实例对象公有的变量用self来表示。只会把你自己搞晕。
4. python定义一个Dog类,实例化两个小狗对象。类属性有名字,颜色,体重。实现以下描述
程序写给你
classdogClass():
def__init__(self,name,color,weight):
self.name=name
self.color=color
self.weight=weight
def__del__(self):
self.name=""
self.color=""
self.weight=""
defname(self):
returnself.name
defcolor(self):
returnself.color
defweight(self):
returnself.weight
a=dogClass("旺财","棕色","5斤")
b=dogClass("来福","黑色","8斤")
print("小狗名字叫",a.name,",颜色是",a.color,",体重",a.weight)
print("小狗名字叫",b.name,",颜色是",b.color,",体重",b.weight)
执行结果: