您的位置:威尼斯官方网站 > 威尼斯正规官网 > 如果按下面方法织造引用私有变量

如果按下面方法织造引用私有变量

发布时间:2019-11-12 15:39编辑:威尼斯正规官网浏览(62)

    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:4.scriptworktest.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:4.scriptworktest.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
    

      

     

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:如果按下面方法织造引用私有变量

    关键词:

上一篇:没有了

下一篇:没有了