1、_
只有一个下划线:
python解释器对下划线是有“特殊感情的”,请看:
在python解释器中,下划线会指向最后一次执行(成功)的表达式。
python也可以使用下划线来分隔较大的数字使其更加易读,比如:
单个下划线还可以用在 for 循环语句中:
其实这里的下划线可以替换成任何值,只是这里用下划线只是为了表示我们不关心它而已。
同样的方法还可以用在列表推导式中:
同样也可以用在你要解包的元组中表示你不关心的值:
2、 __???__
前后各有两个下划线:
这种以双下划线开头和结尾的方式在类里面最常见:
除了类的构造函数 __init__ 之外,python类里边还有很多内置的以双下划线开头和结尾的函数,我们称之为“魔法函数”。这些都是python内置好的可以直接用的,所以我们在写程序时也要尽量避免以这种双下划线开头结尾的方式去命名函数。
3、 _???
单个下划线开头:
受保护成员,不能用 from module import * 导入:
即使是在本类中,虽然可以调用,但是pycharm也会有提示的,因为函数名前面加下划线意味着开发者不想让你在外部调用这个函数
4、???_
单个下划线结尾:
这种情况多用于变量名称与python自带的关键字产生冲突时使用的像这样:
不过当然啦,你也可以在后面加任意个下划线来避免与关键字冲突…:(不过一般没人吃饱撑的这样做🌚)
还有一个比较经典的比如Beautifulsoup里的:
5、__???
双下划线开头:
私有成员,只有对象自己能访问,子类对象不能直接访问到这个成员,但在对象外部可以通过“对象名._类名__???”的形式来访问:
6、if __name__ == “__main__”
程序出口,也有下划线,不过这就是死格式了…