天天看点

Python类

一.类基础

#类
class Dog(): #定义
    def __init__(self,name): #初始化属性,self赋值后,所有方法都可以用
        self.name = name

    def sit(self): #获取属性
        print(self.name.title() + " is now sitting.")

my_dog = Dog('wang') #调用方法
my_dog.sit()
my_dog.name = xx #直接修改赋值

print(my_dog.name) #只打印变量

#类继承
class A_Dog(Dog):
    def __init(self,name): #父类有的那些参数
    super().__init__(name) #初始化父类的那些参数,这样父类参数可以懒得写slef.xx=xx
    self.xx = xx #子类自己的变量
    def sit(self): #和父类重名,将直接覆盖

#对方法进行定义属性,可以方法定义return 2*,这样实时更新结果
name = property(get_name, set_name) #套入方法
xx = abc('nginx')
xx.name = 'xx' #赋值操作时,set_name就会被调用

@property #在修改函数的上面套用,类似get
@name.setter #类似set

#类拆分
class B_Dog():
    self.adog = A_Dog() #将类赋值
b.adog.sit() #调用


self.__name = xxx #禁止外部调用 xx.name方式调用

fowl._Duck__name #查看类别

@classmethod #类方法
def xx(cls):
    print(cls.count) #打印有几个类引用
类名.xx() #调用

@staticmethod #静态方法,直接对象.xx调用,不用赋值
def commercial():
    print('This CoyoteWeapon has been brought to you by Acme')
           

二.特殊方法

class Word():
    def __init__(self, text):
        self.text = text
    def __eq__(self, word2): #不用再带入类,word2是类名
        return self.text.lower() == word2.text.lower() #和别的类text比较
xx == dd #类直接比较
           
Python类

本文版权归作者所有,欢迎转载,请务必添加原文链接。