zoukankan      html  css  js  c++  java
  • Python 类的公有、私有成员

    我们先上结论┗( ▔, ▔ )┛

    结论

    __xx__:这种系统属性或方法,还没想好怎么测试,我们就看看用户自定义的吧
    | variate | from module import *| 类外 | 继承 |
    | ---- | ---- | ---- |----| ---- |
    | xx :公有变量 | ✔ | ✔ | ✔ |
    | _xx :单前置下划线 | ✘ | ✔ | ✔ |
    | __xx:双前置下划线 | ✘ | ✘ | ✘ |

    from module import * 测试部分
    a.py

    name = "name"
    _name = "_name"
    __name = "__name"
    

    test.py

    from a import *
    
    print(name)
    # print(_name)      #NameError: name '_name' is not defined
    # print(__name)      #NameError: name '__name' is not defined
    

    类外 测试部分

    class Person(object):
        name = "name"
        _name = "_name"
        __name = "__name"
    
        @staticmethod
        def method():
            print("method()")
    
        @staticmethod
        def _method():
            print("_method()")
    
        @staticmethod
        def __method():
            print("__method()")
    
    
    instance = Person
    print(instance.name)  # name
    print(instance._name)  # _name
    # print(instance.__name)         # AttributeError: type object 'Person' has no attribute '__name'
    instance.method()  # method()
    instance._method()  # _method()
    # instance.__method()     #AttributeError: type object 'Person' has no attribute '__method'
    
    

    继承 测试部分

    class PersonChild(Person):
        def out(self):
            print(instance.name)  # name
            print(instance._name)  # _name
            # print(instance.__name)        # AttributeError: 'PersonChild' object has no attribute '__name'
            self.method()  # method()
            self._method()  # _method()
            # self.__method()     # AttributeError: 'PersonChild' object has no attribute '__method'
    
    
    
    instance = PersonChild()
    instance.out()
    
  • 相关阅读:
    jquery ajax
    js 列表选择
    Jquery 搜索框自动提示
    图片居中跟inline-block
    模式学习(一)
    高效图形(一)
    eval() / Function()
    css3(一)
    回调函数(二)
    回调函数(一)
  • 原文地址:https://www.cnblogs.com/adamr/p/13972017.html
Copyright © 2011-2022 走看看