Python面向对象-类的各种方法与代码演示

Python面向对象-类的各种方法与代码演示_第1张图片
Python面向对象-类的各种方法与代码演示_第2张图片

Python面向对象-类的各种方法与代码演示_第3张图片
Python面向对象-类的各种方法与代码演示_第4张图片
Python面向对象-类的各种方法与代码演示_第5张图片
Python面向对象-类的各种方法与代码演示_第6张图片
Python面向对象-类的各种方法与代码演示_第7张图片
Python面向对象-类的各种方法与代码演示_第8张图片
Python面向对象-类的各种方法与代码演示_第9张图片
Python面向对象-类的各种方法与代码演示_第10张图片

class Price:
    '''这是一个类'''
    count = 0  #这是一个类属性 可以用类名.属性,也可以用实例名.属性来使用
    def __init__(self,name):#类的构造函数,默认__init__ ,参数第一个必须用self
        #类的构造函数用于类创建实例的过程。也定义了实例属性
        self.name = name #这里设置了实例属性 只能用实例名.属性来使用

    def lucky(self): #类的实例方法,只能使用实例名.方法名使用,参数用self
        s = 0
        for c in self.name:
            s += ord(c) % 100
        return s

    @classmethod #这是一个类方法,采用@classmethod标注 参数建议用cls标注 
    def getcount(cls):#类方法可以用实例名.方法名,也可以用类名.方法名来使用
        s = '123456'
        return s[Price.count]

    def freedom(): #这是一个类的自由方法,可以传参数。就是类的普通函数
        Price.count += 100#类的自由方法只能操作类属性或类方法
        return Price.count#自由方法使用只能用类名.方法
    
    @staticmethod #这是一个类的静态方法,必须使用装饰器定义。也是类的普通函数
    def foo(): #可以使用实例名.方法名使用,也可以使用类名.方法名使用
        Price.count -= 100
        return Price.count

    def __len__(self):#类的保留方法,一般为开始结束使用双下划线 
        return len(self.name)  
cn = Price('老王') #类的实例化 cn是实例对象 
print(cn.lucky())#只能用对象名.方法名来调用实例方法
print(cn.getcount(),Price.getcount())#类方法可以用实例名.方法名或类名.方法名来调用
print(Price.freedom()) #只能用类名.方法名来调用类的自由方法
print(cn.foo(),Price.foo()) #类的静态方法可以用实例名.方法名或类名.方法名来调用
print(len(cn))#用类的保留方法时可以直接编写代码,这是Python解释器保留方法已对应






你可能感兴趣的:(基础知识)