classaa:def__init__(self,age,name):
self.age = age
self.name = name
def__str__(self):return"My name is %s and %s year"%(self.name,self.age)if __name__=="__main__":
s = ss(21,'小')print(s)
classDoghead(object):def__init__(self,name,age):
self.name =name
self.age = age
def__call__(self, eat):print('My name is %s and %s year'%(self.name,self.age))print('I like %s'% eat)
p = Doghead('Bob',3)
p("小明”")
4,dict 查看类或对象中的所有成员
classcc:def__init__(self,name,age):
self.name = name
self.age = age
deffunc(self):print('类方法')defhhh(self):for k, v in self.__dict__.items():print(k, v)#查看类成员print('类成员:',cc.__dict__)#查看对象成员
i = cc("jack",12)print('对象成员',i.__dict__)#调用定义的__dict__方法获取成员
i.hhh()
classUser(object):def__init__(self,name,age):
self.name = name
self.age = age
print("调用__init__方法:",self.name,self.age)def__new__(cls,*args,**kwargs):print("__new__",args,kwargs)pass
d = User('jack',30)
7,del 析构方法,删除无用的内存对象(当程序结束会自动自行析构方法)
classDoghaed(object):def__init__(self,name):
self.name =name
print("__init__方法被调用")def__del__(self):print("__del__方法被调用")print("python解释器开始回收%s对象了"% self.name)
p = Doghaed('Bob')del p
特殊方法的名字以两个下划线开头,以两个下划线结尾,例如: __init__, __str__1,str 如果一个类中定义了__init__方法,通过构造进行给实例赋值 class aa : def __init__(self,age,name): self.age=age, self.name=name def get(): print(My name is %s and %s year" %(self.name,self.age)) a=aa(21,"小") a.g