python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python变量命名

详解python变量的命名和使用

作者:听海边涛声

变量名只能包含字母、数字和下划线,本文主要介绍了详解python变量的命名和使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

变量名只能包含字母、数字和下划线

变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头。例如,可将变量命名为message_1,但不能将其命名为1_message。

Python 语言中,以下划线开头的标识符有特殊含义

在Python中,以下划线开头的变量名有特殊的含义,尤其是在类的定义中,用下划线作为变量前缀和后缀来表示类的特殊成员。

以单下划线开头

说明

_xx:这样的对象叫做保护变量,不能用’from module import *'导入。
_xx 以单个下划线开头命名的方法或者变量,就是说明它是仅提供内部使用的。

举例1:模块访问举例

首先在demo1.py中定义了两个函数,一个以下划线开头,另外一个不以下划线开头:

def my_fun():
    print('hello my_fun()')
    
def _my_fun():
    print('hello _my_fun()')

然后在另外一个模块demo2.py中访问这两个函数:

from demo1 import *

my_fun()
_my_fun

运行输出:

在这里插入图片描述

可以看到,不以单下划线开头的函数my_fun可以正常访问;而以单下划线开头的_my_fun函数访问出错,提醒没有定义。

举例2:类访问举例

在类A中定义了以单下划线开头的成员变量_num,类Aa继承了A类:

class A():
    def __init__(self):
        self._num = 1
        self._age = 12
        
    def afun(self):
        print(self._age)
        
class Aa(A):
    def __init__(self):
        super().__init__()
        
a = A()
aa = Aa()
print("在父类中访问_num变量:", a._num)
print("在子类中访问_num变量:", aa._num)

运行输出:

在这里插入图片描述

可以发现,通过父类、子类可以访问以单下划线开头的成员变量_num。

以双下划线开头

说明

以双下划线开头的标识符(如__add)表示类的私有成员。
__xxx:类中的私有成员,只有类对象自己的函数中能访问。

举例:类对象通过函数可以访问自身类中双下划线开头的成员变量

在类A中定义了以双下划线开头的变量__age:

class A():
    def __init__(self):  
        self.__age = 12
        
    def afun(self):
        # 在类本身的函数中访问双下划线开头的变量
        print(self.__age)
        
class Aa(A):
    def __init__(self):
        super().__init__()
        
a = A()
aa = Aa()
# 类对象本身调用自己的函数
a.afun()

运行输出:

在这里插入图片描述

举例:子类对象调用父类的函数可以访问父类双下划线开头的成员变量

在类A中定义了以双下划线开头的变量__age:

class A():
    def __init__(self):  
        self.__age = 12
        
    def afun(self):
        # 在类本身的函数中访问双下划线开头的变量
        print(self.__age)
        
class Aa(A):
    def __init__(self):
        super().__init__()
        
a = A()
aa = Aa()
# 子类对象调用父类的函数
aa.afun()

运行输出:

在这里插入图片描述

举例:类对象本身也无法直接访问自己类定义的双下划线开头的成员变量

在类A中定义了以双下划线开头的变量__age:

class A():
    def __init__(self):  
        self.__age = 12
        
    def afun(self):
        # 在类本身的函数中访问双下划线开头的变量
        print(self.__age)
        
class Aa(A):
    def __init__(self):
        super().__init__()
        
a = A()
# aa = Aa()
a.__age

运行输出:

在这里插入图片描述

以双下划线开头、双下划线结尾

以双下划线作为开头和结尾的标识符(如 init),是专用标识符。
以双下划线开头,双下划线结尾的对象,Python内置属性名或者魔法方法名。是Python自己实现的属性和方法,一般不允许自定义类似此种命名方式的属性或者方法。

变量名不能包含空格

变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。

不要将Python关键字和函数名用作变量名

不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。

变量名应既简短又具有描述性

变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。

慎用小写字母l和大写字母O

慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。

备注:就目前而言,应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的主意。

到此这篇关于详解python变量的命名和使用的文章就介绍到这了,更多相关python变量命名和使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文