Python 中类都有哪些魔术方法
2021-02-10 10:18
标签:color tps class info com https href print *args 魔术方法 __init__:方法作用是给对象的属性进行赋值 __str__:print(keyou) 直接打印对象的时候会调用 __str__ 方法,一定只能返回字符串 __call__:(译:靠)对象.()自动调用,位置参数被args接收为元祖,关键字参数被kwargs接收 _getitem__:对象.[]会默认调用__getitem__方法,可以通过数字索引取值、切片操作 *******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!******* Python 中类都有哪些魔术方法 标签:color tps class info com https href print *args 原文地址:https://www.cnblogs.com/shouhu/p/12743593.htmlclass 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‘, ‘会吹牛‘]
上一篇:利用线程异步调用
下一篇:排序之冒泡排序+对拍器的使用