标签:空间 避免 image mic mamicode 模块 object 用户名 导入
__init__
, __ 不要自己发明这样的名字通过name mangling(名字重整(目的就是以防子类意外重写基类的方法或者属性)如:_Class__object)机制就可以访问private了。
1 class Person(object): 2 def __init__(self, name, age, taste): 3 self.name = name 4 self._age = age 5 self.__taste = taste 6 7 def showperson(self): 8 print(self.name) 9 print(self._age) 10 print(self.__taste) 11 12 def dowork(self): 13 self._work() 14 self.__away() 15 16 17 def _work(self): 18 print(‘my _work‘) 19 20 def __away(self): 21 print(‘my __away‘) 22 23 class Student(Person): 24 def construction(self, name, age, taste): 25 self.name = name 26 self._age = age 27 self.__taste = taste 28 29 def showstudent(self): 30 print(self.name) 31 print(self._age) 32 print(self.__taste) 33 34 @staticmethod 35 def testbug(): 36 _Bug.showbug() 37 38 # 模块内可以访问,当from cur_module import *时,不导入 39 class _Bug(object): 40 @staticmethod 41 def showbug(): 42 print("showbug") 43 44 s1 = Student(‘jack‘, 25, ‘football‘) 45 s1.showperson() 46 print(‘*‘*20) 47 48 # 无法访问__taste,导致报错 49 # s1.showstudent() 50 s1.construction(‘rose‘, 30, ‘basketball‘) 51 s1.showperson() 52 print(‘*‘*20) 53 54 s1.showstudent() 55 print(‘*‘*20) 56 57 Student.testbug()
总结
__名字
的,子类不继承,子类不能访问__名字
赋值,那么会在子类中定义的一个与父类相同名字的属性_名
的变量、函数、类在使用from xxx import *
时都不会被导入
附加:修改、查看私有属性、名字重整:
标签:空间 避免 image mic mamicode 模块 object 用户名 导入
原文地址:https://www.cnblogs.com/zuzhuangmengxiang/p/12735353.html