Python 中类都有哪些魔术方法
Posted 守护@往昔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/,谢谢!!*******
以上是关于Python 中类都有哪些魔术方法的主要内容,如果未能解决你的问题,请参考以下文章