Python Class 本文共有5219个字,关键词: 类(Class):用来描述具有相同的属性和方法的对象的集合。类的专有方法:__init__ : 构造函数,在生成对象时调用__del__ : 析构函数,释放对象时使用__repr__ : 打印,转换__setitem__ : 按照索引赋值__getitem__: 按照索引获取值__len__: 获得长度__cmp__: 比较运算__call__: 函数调用__add__: 加运算__sub__: 减运算__mul__: 乘运算__truediv__: 除运算__mod__: 求余运算__pow__: 乘方class Human: def __init__(self, name, sex): # 公有变量 self.name = name self.sex = sex # 私有变量 self.__name = f'name:{self.name},sex:{self.sex}' # 私有方法 def __creategotostr(self, place): return f'name:{self.name},sex:{self.sex},go to {place}' # 公有方法 def showinfo(self): print(self.__name) def go(self, place): print(self.__creategotostr(place)) # 继承 class HumanCity(Human): def __init__(self, name, sex, city): # super.__init__(self,name, sex) Human.__init__(self, name, sex) self.city = city # 重写父类 def go(self, place): print(f'name:{self.name},sex:{self.sex},from {self.city} go to {place}') if __name__ == '__main__': human_1 = Human('zhangsan', 'male') human_1.showinfo() human_1.go('sea') human_1.sex # 可以访问 # human_1.__name #不可以访问 # human_1.__creategotostr('') #不可以访问 humancity = HumanCity('lisi', 'male', 'hangzhou') humancity.showinfo() humancity.go('xizang') #如果有多个继承 # class SubClass(F1,F2,F2): # F1.__init__(self) # F1.__init__(self) # F1.__init__(self) # self.__init__(self) #如果在子类中需要父类的构造方法就需要显式地调用父类的构造方法,或者不重写父类的构造方法。 #子类不重写 __init__,实例化子类时,会自动调用父类定义的 __init__。 #https://www.runoob.com/w3cnote/python-extends-init.html访问已经设定的私有变量class tst: def __init__(self,v): self.__var = v self.var = v t=tst('vvv') print(t.var) #vvv print(t.__var) #报错 print(t._tst__var)#即可以通过 ._类名+私有变量名,实现访问 #vvv扩展:class tst: def __init__(self,name): self.name=name def __str__(self): return 'Your submit:' + self.name __repr__=__str__ #用于for … in循环 def __iter__(self): return self def __getitem__(self, item): if item > 10000: raise StopIteration() a,b =1,1 for x in range(item): a,b =b ,a+b return self.name+'-' + str(a) def __getattr__(self, item): if item =='parm': return 'I am here' x= tst('zhangsan') print(x) #Your submit:zhangsan print (x.name) #zhangsan print (x.parm) #I am here print(x[3]) #zhangsan-3 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 梦白沙 (๑>ڡ<)☆谢谢老板~ 1元 2元 5元 10元 50元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 Python 2022-04-17 评论 275 次浏览