python类相关知识

python类相关知识

class Person(object):
    cls_data="xiaohei"#类属性
    def __init__(self, name, age):#初始化方法
        self.name = name#实例化(对象)属性,self代表当前对象
        self.age = age
    
    @classmethod
    def get_cls_data(cls):#类方法
        print(cls.cls_data) #cls代表着类本身(Person)

    def get_name(self):#实例化方法
        print(self.name,self.age)

    @staticmethod
    def get_age(age):#静态方法,与类和对象无关
        print(age)

    @property
    def get_name_age(self):#属性方法,将方法转换为属性
        print(self.name,self.age)
        return self.name,self.age

class Student(Person):#继承
    def __init__(self, name, age, score):
        super().__init__(name, age)
        # self.score = score
        self.__score = score#私有属性
    def __private_method():
        print('这是私有方法')
    def get_name(self):
        print(self.name,self.__score)
    
    
    
p1=Person('张三', 20)
print(p1.name)
print(Person.cls_data)
Person.get_cls_data()
Person.get_age(20)
p1.get_age(20)
a,_=p1.get_name_age

p2=Student('李四', 20, 100)
p2.get_name()
p2.get_name_age
class Singleton:
    _instance = None
#__new__ 是一个静态方法(尽管不需要显式使用 @staticmethod 装饰器),它负责创建对象实例。它是对象实例化过程中第一个被调用的方法。
    def __new__(cls, *args, **kwargs):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
        return cls._instance

    def __init__(self, value):
        self.value = value

# 测试单例模式
a = Singleton(10)
b = Singleton(20)

print(a is b)  # 输出: True
print(a.value)  # 输出: 20
print(b.value)  # 输出: 20
posted @ 2025-03-20 23:05  CodeCraftsMan  阅读(24)  评论(0)    收藏  举报