B3_Python中下划线详解

1. 单下划线前缀 _var

  1. 单下划线前缀的变量,在Python中是一种约定或者是提示,它表示这个变量只能或者方法
    只能再内部使用.尽量不要在外部使用,不像其他的强类型的语言,在外部是不可访问的.
  2. 单下划线的变量在使用通配符导入(from module import *)的时候是不可见的.
  • 单下划线前缀变量在外部依旧可以访问

  • 单下划线变量,在使用 from module import *的时候是不可见的.但是常规的导入就是可以的

    首先是创建一个模块,名称为module_simple,代码内容如下:

    val = "我是常规变量"  # 常规变量1
    _val = "我是带前导下划线的变量"  # 带前缀的变量2
    
    
    def normal_function():
        print("我是一个常规的函数")
    
    
    def _inner_func():
        print("我是一个带前导下划线的内部函数")
    
  • 通配符导入的时候无法访问单下划线开始的对象

  • 如果是常规导入模块的方式,可以访问单下划线开头的对象

    单下划线开头的变量只是一个Python的命名约定,表示这个名称是在内部使用.它通常不由Python
    解释器强制执行,只是作为对程序员的约束和提示

2. 单下划线后缀 var_

单下划线后缀没有实际的意义,就是给变量加一个下划线,避免和一些Python内置的关键字重复
或者避免跟已经存在的变量重复. 想类似str,int,class,def,for这样的关键字不能作为对象名称
可以加一个单下划线来解决 str_,int_,class_,def_,for_
单下划线没有实际的意义,就是用来解决变量名的冲突而产生的,一般很少使用

3. 双下划线前缀 __var

  1. 双下线开头的对象,会被认为是一个类的私有的对象,不能在外部直接访问
  2. 这个私有,是相对的,它只是被换了一个名称被保存了起来
  3. 双下划线开始的变量会被变成类的属性 _Class__var,其中_Class称为名称修饰符

在这里插入图片描述

这样做的目的是什么呢,就是防止外部直接使用,防止继承的子类直接使用进行修改,但是也不能完全的防止这个事情,因为它还是可以通过_Class__val的方式访问的

4. 双下划线前缀后缀皆有

如果一个变量名称,以双下划线开头并且以双下划线结尾,这个变量一般是Python内部的变量
Python解释器遇到这种变量的时候会做特殊的调用处理
这种变量可以直接访问,但是不建议我们自定义的使用使用,避免和Python的内置变量冲突

5. 单独的一个单下划线

  1. 单独的一个下划线_可以当成一个名字,用来表示某个临时的或者无关紧要的变量.
  2. 可以在拆分变量的时候,用_来占位那些你不要的变量,可以忽略掉.*_可以忽略多个变量

在这里插入图片描述

おすすめ

転載: blog.csdn.net/Fioman_GYM/article/details/120545389