Discuss / Python / 两个下划线和一个下划线变量在类中的使用

两个下划线和一个下划线变量在类中的使用

Topic source

可以这样认为__name两个下划线为private成员变量,只能本类使用,_name一个下划线为protected成员变量,可以在本类和子类中使用。


# coding:utf-8
class Animal(object):
    def __init__(self, name):
        self._name = name    

    def run(self):
        print("animal %s is running..." % self.__name)

class Dog(Animal):
    def __init__(self, name):
        Animal.__init__(self, name)

    def run(self):
        print("dog %s is running..." % self._name)

class Cat(Animal):
    def __init__(self, name):
        Animal.__init__(self, name)

    def run(self):
        print("cat %s is running..." % self._name)

if __name__ == '__main__':
    dog = Dog('lucky')
    cat = Cat('miao')
    dog.run()
    cat.run()

  • 1

Reply