Python类里的6种方法:实例方法、类方法、静态方法、魔法方法、自由方法、私有方法

 

# 类里的6种方法:实例方法、类方法、静态方法、魔法方法、自由方法、私有方法
class test(object):
    __new = "无法在外部访问"
    _new = "类对象和子类可以访问"
    new = "类变量 外部可访问"

    # 魔法方法
    def __init__(self): 
        self.num = 10
        self._num = 20
        self.__num = 30

    # 自由方法
    def freedom(): # 参数中没有self 或 cls,也没有任何装饰器
        print('该方法是自由方法')
        # print(new) # 会报错,因为此自由方法未定义变量new
        print(test.new) # 访问类变量的方法同静态方法,通过类名访问

    # 双下划线私有方法,外部不能访问
    def __hello():
        print('该方法外部访问不到')
    
    # 单划线私有方法,类对象和子类可以访问
    def _singleHello():
        print('该方法类和子类可访问')

    # 静态方法
    @staticmethod
    def static_method():
        print("这是静态方法:", test.new)
    
    # 类方法
    @classmethod
    def class_method(cls):
        print("这是类方法:", cls.new)

    # 实例方法
    def hi(self):
        print("这是实例方法:",self.new)

t = test()
t.hi()
test.freedom() 
test.class_method()
test.static_method()
test._singleHello()
# test.__hello() # 私有方法不能访问

 

posted @ 2022-10-29 17:37  yudai  阅读(197)  评论(0编辑  收藏  举报