YOU'VE MADE A BRAVE DECISION, WELCOME.

每一个不曾起舞的日子都是对生命的辜负。

关于带有下划线的python对象

  1. 关于Python对象是否有下划线:

单下划线前缀:_x

  • 私有的,不应该被直接引用
  • 因为python并没有一种方法可以完全限制访问private函数或变量,而是从编程习惯上不应该引用private函数或变量
  • 特殊:使用一个C编写的扩展库有时会用下划线开头命名,然后使用一个去掉下划线的python模块进行包装。(struct这个模块实际是C模块_struct的一个Python包装)
  1. 下划线前缀:_ _x
  • 伪私有变量
  • 如果Test类有一成员_ _x,那么dir(Test),会看到 _Test__x
  • 为了避免该成员名称与子类中的名称冲突
  • 子类无法覆盖父类的_ x,会定义一个自己的 子类名__x
  1. 双下划线前缀结尾 _ _x__
  • 特殊用途,可以被引用
  • 是一种确保python系统中名称不会跟用户自定义的名称发生冲突的方式
  1. 单下划线结尾 x_
  • 用于和python关键词区分开来,比如我们需要一个变量叫class,但它也是python的关键词,就可以用单下划线结尾写作 class_
  1. _
  • _ 符号指交互解释器中最后一次执行语句的返回结果
  • 还可用作被丢弃的名称 n = 42; for _ in range(n): do_sonmething()
  • 还可用作函数名