python 类中的单下划线和双下划线的意义

#"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;
#"双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

class Pub(object):

    var1 = ‘hello‘
    _var2 = ‘yes‘
    __var3 = ‘hah‘

    def __init__(self):
        self._a = 123
        self.__b = 456
        self.c = 789

    def show_a_var(self):
        return self._a

    def show_b_var(self):
        return self.__b

    def show_var2(self):
        return self._var2

    def show_var3(self):
        return self.__var3

class Foo(Pub):
    pass

print(Pub.var1)

sl = Pub()
print(sl.c)
print(sl.show_a_var())
print(sl.show_b_var())

print(sl.show_var2())
print(sl.show_var3())

fa = Foo()
print(fa._var2)
print(fa.var1)
print(fa.show_a_var())
print(fa.show_var2())
时间: 2024-11-06 22:01:49

python 类中的单下划线和双下划线的意义的相关文章

python的单下划线和双下划线

python 类中的单下划线开头的变量表示:该方法为类的私有方法,原则上外部不能访问,但是用._XX是可以访问到的 双下划线开头则是强制外部不能直接访问的用.__XX是访问不到的,它内部其实是将变量名重新命名为:_类名__变量名,所以可以通过._类名__变量名访问 #_*_coding:utf-8_*_ __author__ = 'Linhaifeng' class People: __star='earth111111111111' __star1='earth111111111111' __

python 里面的单下划线与双下划线的区别(私有和保护)

Python 用下划线作为变量前缀和后缀指定特殊变量. _xxx 不能用'from module import *'导入 ——变量名_xxx被看作是“私有 的”,在模块或类外不可以使用.__xxx__ 系统定义名字 ——__xxx 类中的私有变量名 ——只有类对象自己能访问,连子类对象也不能访问到这个数据. 核心风格:避免用下划线作为变量名的开始. 因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始.一般来讲,变量名_xxx被看作是“私有 的

python 里面的单下划线与双下划线的区别

python 里面的单下划线与双下划线的区别 Python 用下划线作为变量前缀和后缀指定特殊变量. _xxx 不能用'from moduleimport *'导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格:避免用下划线作为变量名的开始. 因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下 划线作为变量名的开始.一般来讲,变量名_xxx被看作是“私有 的”,在模块或类外不可以使用. 当变量是私有的时候,用_xxx 来表示变量是很好的习

python中的下划线及双下划线

一.Python 用下划线作为变量前缀和后缀指定特殊变量 1. 单下划线开头: _xxx:弱“内部使用”标识,如:”from Module import *”,将不导入所有以下划线开头的对象,包括包.模块.成员 2. 双下划线开头: __xxx:模块内的私有成员,外部无法直接调用. 即:私有类型的变量.只能是允许这个类本身进行访问了.连子类也不可以 3. 双下划线开头和结尾: __xxx__ :系统定义名字, 用户无法控制的命名空间中的“魔术”对象或属性, 如: __name__.__doc__

python单下划线、双下划线、头尾双下划线说明:

单下划线.双下划线.头尾双下划线说明: __foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的. _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import * __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了. 来源: http://www.runoob.com/python/python-object.htm

python(七) Python中单下划线和双下划线

Python中单下划线和双下划线: 一.分类 (1).以单下划线开头,表示这是一个保护成员,只有类对象和子类对象自己能访问到这些变量. 以单下划线开头的变量和函数被默认是内部函数,使用from module improt *时不会被获取,但是使用import module可以获取. (2).以单下划线结尾仅仅是为了区别该名称与关键词 (3).双下划线开头,表示为私有成员,只允许类本身访问,子类也不行.在文本上被替换为_class__method  (4).双下划线开头,双下划线结尾.一种约定,P

Python中单下划线和双下划线

Python中单下划线和双下划线: 一.分类 (1).以单下划线开头,表示这是一个保护成员,只有类对象和子类对象自己能访问到这些变量. 以单下划线开头的变量和函数被默认是内部函数,使用from module import *时不会被获取,但是使用import module可以获取. (2).以单下划线结尾仅仅是为了区别该名称与关键词 (3).双下划线开头,表示为私有成员,只允许类本身访问,子类也不行.在文本上被替换为_class__method  (4).双下划线开头,双下划线结尾.一种约定,P

Python 类中的 self?

什么是 self ? 它是类实例自身的引用.其他语言通常使用一个名为 this 的标识符 --<Python核心编程> 如何定义类: class ClassName(base_class[es]):  (1) "optional documentation string" static_member_declarations #类静态成员声明 method_declarations #类方法声明 (1) 括号内位基类,如果没有,就实用object作为基类 .....待续 P

两幅图说明python类中self的含义

总结:self是对于对象自身的引用.这里的圆括号里的self也可以换成其它你想要的任意名称,只是self更形象和通用些. 两幅图说明python类中self的含义