类属性 类方法

#类属性 属于类的属性 在对象外面开辟空间所有对象共享
class text():
    uname="张松"
    def __init__(self,name):
        self.uname=name  #对象属性
        #text.uname=name   #类属性
d=text("abc")
text.uname=("aaa")
t=text("ccc")
print(text.uname) #对象属性的时候输出结果是aaa
print(d.uname)#对象属性输出结果是abc
print(t.uname)#对象属性输出结果是ccc
#调用类属性 三个输出结果都是ccc 如果把类属性换成对象属性输出结果都不一样


#类方法
class test:
    uname="李彤"
    def __init__(self,name):
        test.uname=name
    @classmethod  #调用类方法
    def aaa(cls):
        test.uname="hellow"
        print("这是类方法-----")
    @staticmethod#调用静态方法
    def jingtai():
        # 静态方法没有参数 和类没有关系也和对象没有关系,可以通过
        #类和对象调用
        print("这是静态方法----")
test.aaa()#类方法不用创建对象直接类点就可以调用
print(test.uname)
test.jingtai()


#单例  单个案例执行
class dl():
    aaa=None
    def __new__(cls, *args, **kwargs):#构造方法 生成新的对象在__init__之前调用
        if cls.aaa==None:
            cls.aaa=object.__new__(cls)
            return cls.aaa
        else:
            return cls.aaa
    def __init__(self,name):
        self.name=name
        #print("···")
s=dl("Aaa")
m=dl("bbb")
print(s.name)
print(m.name)

猜你喜欢

转载自blog.csdn.net/lt0318aa/article/details/79379127
今日推荐