㈠ python中的下横线是什么意思
Python中的下横线是什么意思
下划线一般有两种情况:
1、两边都有两个下划线的情况:这一般是指内建预定义属性,这种内建预定义属性。
2、中间一根下划线:这个命名中两个单词的分割线,这个以前OO编程中单词首字母大写差不多一个作用,只不过一般python的模块函数编程会用下划线分割这种方式。
更多技术请关注Python视频教程。
㈡ python中_,__和__X__的区别与作用
x:表示该函数或该成员变量属于类私有,不允许外部调用
x :表示一个变量的名字,只不过单独的x被python内部认为是关键字了,已经被占用,所以用x_表示一个新的变量名.
表示这是该类独有的函数,不允许子类重写
只能在类内部调用
前后都有双下划线,说明它是用于Python调用的
更多内容请戳
㈢ python 变量单下划线和双下划线的区别
1、_xxx 不能用于’from mole import *’ 以单下划线开头的表示的是protected类型的变量。
即保护类型只能允许其本身与子类进行访问。
2、__xxx 双下划线的表示的是私有类型的变量。只能是允许这个类本身进行访问了。连子类也
不可以
3、__xxx___ 定义的是特列方法。像__init__之类的
㈣ Python中下划线是什么意思
下划线是一个匿名变量
㈤ python中以下划线开头的变量名的含义
_xx:前面单个下划线,私有化属性或方法,变量不能被外部直接调用
__xx:前面两条下划线,私有化属性或方法,无法在外部直接访问,只允许类本身调用
__xx__:前后两条下划线,系统定义名字,对Python 来说有特殊用途
xx_:后面单条下划线,用于避免与Python关键词的冲突
㈥ python变量赋值时,值前面加下划线是什么意思
加一条下划线一般表示私有变量。如果是两边都加两个下划线一般是语言内置变量或方法等。
㈦ python下划线定义属性
类的私有变量和私有方法
在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性
特殊变量命名
1、 _xx 以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。若内部变量标示,如: 当使用“from M import”时,不会将以一个下划线开头的对象引入 。
2、 __xx 双下划线的表示的是私有类型的变量。只能允许这个类本身进行访问了,连子类也不可以用于命名一个类属性(类变量),调用时名字被改变(在类FooBar内部,__boo变成_FooBar__boo,如self._FooBar__boo)
3、 __xx__定义的是特列方法。用户控制的命名空间内的变量或是属性,如init , __import__或是file 。只有当文档有说明时使用,不要自己定义这类变量。 (就是说这些是python内部定义的变量名)
在这里强调说一下私有变量,python默认的成员函数和成员变量都是公开的,没有像其他类似语言的public,private等关键字修饰.但是可以在变量前面加上两个下划线"_",这样的话函数或变量就变成私有的.这是python的私有变量轧压(这个翻译好拗口),英文是(private name mangling.) **情况就是当变量被标记为私有后,在变量的前端插入类名,再类名前添加一个下划线"_",即形成了_ClassName__变量名.**
Python内置类属性
__dict__ : 类的属性(包含一个字典,由类的数据属性组成)
__doc__ :类的文档字符串
__mole__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__mole__ 等于 mymod)
__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)
㈧ python中下划线命名的含义
python中有五种下划线命名;
(1)单前导下划线: var
以单个下划线开头的变量或方法仅供内部使用,但是不强制执行。通过类名.变量名依然可以引用,但是在使用通配符导入模块(from 模块 import *)时,不能调用使用下划线定义的函数,而常规导入(import 模块)是可以调用的。
(2)单末尾下划线:var
当最符合当前函数的变量名被占用,则可以使用_来解决命名冲突。单个末尾下划线(后缀)是一个约定,用来避免与Python关键字产生命名冲突。
(3)双前导下划线:_ var
双下划线前缀会导致Python解释器重写属性名称,以避免子类中的命名冲突。
这也叫做名称修饰(name mangling) - 解释器更改变量的名称,以便在类被扩展的时候不容易产生冲突。
(4)双前导和末尾下划线: var
Python保留了有双前导和双末尾下划线的名称,用于特殊用途。 这样的例子有, init 对象构造函数,或 call --- 它使得一个对象可以被调用。最好避免在自己的程序中使用以双下划线(“nders”)开头和结尾的名称,以避免与将来Python语言的变化产生冲突。
(5)单下划线:
有时候单个独立下划线是用作一个名字,来表示某个变量是临时的或无关紧要的。单个下划线仅仅是一个有效的变量名称,会有这个用途而已。
总结:
参考: Python中下划线的5种含义
㈨ python中,函数名前后的双划线有什么作用
每一个mole都有一个叫__name__的变量,它的值就是mole的名字
比如os.__name__ 是"os",sys模块的__name__是"sys"
__main__也是一个模块,但是这个模块比较特殊,其他的模块都有一个对应的同名py文件,比如os.py, sys.py,这个模块却没有对应的固定名字的py文件,不管你执行 什么.py,它的名字都是__main__。它指的是正在运行的模块,即主模块。
上面说过,每个模块都有__name__这个变量, 那么主模块也不例外,主模块的__name__变量,值就是"__main__"
解释了半天,再说你的问题:__name__和name是两个不同的变量,__name__有定义而name没有定义,使用没有定义的变量就要出错,这没有什么好说的。
例如你写:
if name == '__main__':是一个变量未定义的错误
而当你写 if __name__ == 'main':的时候,由于__name__的值其实是'__main__',所以if的条件为假,不会执行你的代码。
最后,你可以自己写一点测试代码来探索这个问题,文件名就叫test.py,代码也很简单:
print(__name__)
importtest
输出有两行,第一行毫无疑问是__main__,第二行比较有意思,输出是test,因为此时test.py作为一个模块被import其__name__就是"test"。
㈩ 【变量】关于单下划线、双下划线开头变量的含义
以单下划线(_)表明是标准库的变量
双下划线(__) 开头表明是编译器的变量
建议自己在命名的时候不要用下划线开头,避免与标准库中的命名冲突。
Python 用下划线作为变量前缀和后缀指定特殊变量
_xxx 不能用 “from mole import *” 导入
__xxx__ 系统定义名字
__xxx 类中的私有变量名
核心风格:避免用下划线作为变量名的开始
因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。
一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用,当变量是私有的时候,用_xxx 来表示变量是很好的习惯。因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。
“单下划线” 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;
“双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;
以双下划线开头的(__foo)代表类的私有成员;
以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。