Python类的私有属性与私有方法的使用

  • Post author:
  • Post category:python




请运行下面代码尝试(如果搞不定,先看后面的讲解,再尝试):

*


xx: 公有变量

_x: 单前置下划线,私有化属性或方法,from somemodule import

禁止导入,类对象和子类可以访问

_

xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)


xx

:双前后下划线,用户名字空间的魔法对象或属性。例如:

init

, __ 不要自己发明这样的名字

xx

:单后置下划线,用于避免与Python关键词的冲突

通过name mangling(名字重整(目的就是以防子类意外重写基类的方法或者属性)如:_Class__object)机制就可以访问private了。


#coding=utf-8

class Person(object):
    def __init__(self, name, age, taste):
        self.name = name
        self._age = age 
        self.__taste = taste

    def showperson(self):
        print(self.name)
        print(self._age)
        print(self.__taste)

    def dowork(self):
        self._work()
        self.__away()


    def _work(self):
        print('my _work')

    def __away(self):
        print('my __away')

c



版权声明:本文为qq_36171645原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。