码迷,mamicode.com
首页 > 其他好文 > 详细

###类的特殊成员方法

时间:2018-05-03 11:11:46      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:style   call   foo   weakref   att   set   self   ref   str   

###类的特殊成员方法
#__call__ 对象后面加括号,触发执行。
##注:构造方法的执行是由创建对象触发的,即:对象 = 类名():而对于__call__方法的执行是由对象后加括号触发的,即:对象()或者类()()
class Dog (object):
def __init__(self,name,addr):
self.name = name
self.addr = addr
def blak(self):
print("%s 叫声很好听哦。。。"%self.name)
def __call__(self, *args, **kwargs):
print(args,kwargs)
def __str__(self):
return "<obj:%s>"%self.name


dl = Dog("Caicai","22")
dl(1,2,3,4,name="Caicai")

###__dict__查看类或对象中的所有成员
print(Dog.__dict__)###查看类中的所有对象方法
##输出:{‘__module__‘: ‘__main__‘, ‘__init__‘: <function Dog.__init__ at 0x057F6C90>, ‘blak‘: <function Dog.blak at 0x057F6C48>, ‘__call__‘: <function Dog.__call__ at 0x057F6C00>, ‘__dict__‘: <attribute ‘__dict__‘ of ‘Dog‘ objects>, ‘__weakref__‘: <attribute ‘__weakref__‘ of ‘Dog‘ objects>, ‘__doc__‘: None}
print(dl.__dict__)##获取当前对象的成员
##输出:{‘name‘: ‘Caicai‘, ‘addr‘: ‘22‘}


###__str__如果一个类中定义了__str__方法,那么在打印对象时,默认输出该方法的返回值。
print(dl)
##输出:<obj:Caicai>

###__getitem__/__setitem__/__delitem__
###用于索引操作/如字典。以上以上分别表示获取、设置、删除数据
class Foo (object):
def __getitem__(self, key):
print("__getitem__",key)
def __setitem__(self,key,value):
print("__setitem__",key,value)
def __delitem__(self, key):
print("__delitem__",key)

obi = Foo()










###类的特殊成员方法

标签:style   call   foo   weakref   att   set   self   ref   str   

原文地址:https://www.cnblogs.com/ArtisticMonk/p/8984277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!