详解python变量的命名和使用

 更新时间:2023年12月10日 10:27:23   作者:听海边涛声  
变量名只能包含字母、数字和下划线,本文主要介绍了详解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变量命名和使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Python制作一个动物识别小程序

    利用Python制作一个动物识别小程序

    动物识别是计算机视觉和模式识别领域的重要研究方向,它涉及通过图像或视频数据自动识别和分类不同种类的动物,随着数字图像技术和机器学习方法的快速发展,动物识别在实际应用中具有广泛的潜力,本文将给大家介绍如何基于Python制作一个动物识别小程序
    2023-10-10
  • python celery分布式任务队列的使用详解

    python celery分布式任务队列的使用详解

    这篇文章主要介绍了python celery分布式任务队列的使用详解,Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery,需要的朋友可以参考下
    2019-07-07
  • python 使用pandas读取csv文件的方法

    python 使用pandas读取csv文件的方法

    这篇文章主要介绍了python 使用pandas读取csv文件的方法,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Python super()函数使用及多重继承

    Python super()函数使用及多重继承

    这篇文章主要介绍了Python super()函数使用及多重继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • python实现的AES双向对称加密解密与用法分析

    python实现的AES双向对称加密解密与用法分析

    这篇文章主要介绍了python实现的AES双向对称加密解密与用法,简单分析了AES加密解密算法的基本概念并结合实例形式给出了AES加密解密算法的相关实现技巧与使用注意事项,需要的朋友可以参考下
    2017-05-05
  • python爬虫中抓取指数的实例讲解

    python爬虫中抓取指数的实例讲解

    在本篇文章里小编给大家整理了关于python爬虫中抓取指数的实例讲解内容,有兴趣的朋友们学习下。
    2020-12-12
  • 利用python绘制中国地图(含省界、河流等)

    利用python绘制中国地图(含省界、河流等)

    这篇文章主要介绍了利用python绘制中国地图,帮助大家更好的理解和使用python绘制图形,感兴趣的朋友可以了解下
    2020-09-09
  • Python如何实现转换URL详解

    Python如何实现转换URL详解

    这篇文章主要介绍了Python如何实现转换URL详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Django 中使用日志的方法

    Django 中使用日志的方法

    Django 使用 Python 内置的 logging 模块处理系统日志,所以,只要掌握了 Python 中的 logging 模块,基本也就能够在 django 中使用日志了,本文重点给大家介绍django 中使用日志的方法,感兴趣的朋友一起看看吧
    2022-07-07
  • Python读取中文路径出现乱码问题的解决方案

    Python读取中文路径出现乱码问题的解决方案

    小编在使用opencv读取带有中文路径的图片时,发现会出现乱码的情况,当读取的文件路径出现中文时,(文件夹名为中文或者文件为中文)出现错误,所以本文给大家介绍了Python读取中文路径出现乱码问题的解决方案,需要的朋友可以参考下
    2024-06-06

最新评论