[python] 私有变量和私有方法
程序员文章站
2022-06-24 14:15:36
1、在Python中要想定义的方法或者变量只在类内部使用不被外部调用,可以在方法和变量前面加 两个 下划线 输出: 试错验证,如果按下面方法织造引用私有变量,会报没有该属性 但是可以通过下面这种方法去引用私有变量和方法,在类名前面添加一个下划线 ......
1、在python中要想定义的方法或者变量只在类内部使用不被外部调用,可以在方法和变量前面加 两个 下划线
1 #-*- coding:utf-8 -*- 2 3 class a(object): 4 name = "sashuangyibing" 5 __mingzi = "bingyishuangsa" # 这个是私有变量,只能在类a之内可以使用,超过类a之外是无法引用到 6 def fun1(self): 7 print "this is common method" 8 def __fun2(self): # 这个是私有方法,只能在类a之内可以使用,超过类a之外是无法引用到 9 print "this is private method" 10 def fun4(self): 11 return self.__mingzi # 该私有变量在当前类之内可以被引用 12 13 class b(a): 14 def __init__(self): 15 super(b,self).__init__() 16 17 def fun3(self): 18 print "fun3" 19 20 aa = a() 21 print aa.name 22 print aa.fun4() 23 print aa._a__mingzi 24 aa._a__fun2()
输出:
sashuangyibing
bingyishuangsa
bingyishuangsa
this is private method
试错验证,如果按下面方法织造引用私有变量,会报没有该属性
aa = a()
print aa.__mingzi
traceback (most recent call last):
file "e:\04.script\work\test.py", line 21, in <module>
print aa.__mingzi
attributeerror: 'a' object has no attribute '__mingzi'
aa = a()
print aa.__fun2()
traceback (most recent call last):
file "e:\04.script\work\test.py", line 21, in <module>
print aa.__fun2()
attributeerror: 'a' object has no attribute '__fun2'
但是可以通过下面这种方法去引用私有变量和方法,在类名前面添加一个下划线
aa = a()
print aa._a__mingzi # a前面只有一个下线线
print aa._a__fun2()
bingyishuangsa
this is private method
上一篇: 超市打折买了一袋土豆
下一篇: 学web前端的第一天