Python 中类都有哪些魔术方法
魔术方法
__init__:方法作用是给对象的属性进行赋值
__str__:print(keyou) 直接打印对象的时候会调用 __str__ 方法,一定只能返回字符串
__call__:(译:靠)对象.()自动调用,位置参数被args接收为元祖,关键字参数被kwargs接收
_getitem__:对象.[]会默认调用__getitem__方法,可以通过数字索引取值、切片操作
class PersonInfo: def __init__(self, name, age): # __init__ 方式作用是给对象的属性进行赋值 self.name = name self.age = age self.skills = [] def add_skill(self, item): self.skills.append(item) def __str__(self): # print(keyou) 直接打印对象的时候会调用 __str__ 方法,一定只能返回字符串 return f"[{self.name},{self.age}]" def __call__(self, *args, **kwargs): # (译:靠)对象.()自动调用,位置参数被args接收为元祖,关键字参数被kwargs接收 pass def __getitem__(self, item): # 对象.[]会默认调用__getitem__方法,可以通过数字索引取值、切片操作 return self.skills[item] # init keyou = PersonInfo("小明", 17) # str print(keyou) # 对象.() keyou("非常帅", True, sex="男", score=50) # getitem,添加技能,在切片 keyou.add_skill("会Python") keyou.add_skill("会吹牛") keyou.add_skill("会撞壁") print(keyou.skills) # 结果:['会Python', '会吹牛', '会撞壁'] print(keyou[0:2:1]) # 结果:['会Python', '会吹牛']
*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******
本文仅供参考;如果这篇文件对你有所帮助,麻烦动动发财的小手,推荐一波支持下万分感谢
*******请大家尊重原创,如要转载,请注明出处:作者:守护@往昔;转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******