python标识符在命名时有哪些规则_php标识符的命名规则

python标识符在命名时有哪些规则_php标识符的命名规则在Python中,一切都是对象,包括常量数据类型,如整数数据类型(1,2,3…),字符串数据类型(“ABC”)。想要使用这些对象,就要使用它的对象引用。赋值操作符,实际上是使得对象引用对内存中存放数据的对象进行引用。那什么是标识符?标识符是对对象引用起的一个名字。有效的Python标识符规则:1.长度任意长;2.标识符不能与关键字同名;3.在2.x版本的Python中,标识符以ASCII的字母…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

5cfdf1c5c6086203.jpg

在Python中,一切都是对象,包括常量数据类型,如整数数据类型(1,2,3…),字符串数据类型(“ABC”)。想要使用这些对象,就要使用它的对象引用。赋值操作符,实际上是使得对象引用对内存中存放数据的对象进行引用。

那什么是标识符?

标识符是对对象引用起的一个名字。

有效的Python标识符规则:

1.长度任意长;

2.标识符不能与关键字同名;

3.在2.x版本的Python中,标识符以ASCII的字母或下划线开始,后面可以接字母、数字、下划线;在3.x的Python中,标识符ASCII字母、下划线以及大多数非英文语言的字母,只要是Unicode编码的字母都可以充当引导字符,后续字符可以是任意引导符,或任意非空格字符,包括Unicode编码中认为是数字的任意字符。(因此可以使用阿拉伯语、中文、日语或俄语字符或Unicode字符集支持的任意其他语言中的字符进行命名)

约定:

1.不要使用Python预定义的标识符名,因此要避免使用NotImplemented与Eliiipsis等名字,这些在未来有可能被Python的新版本使用到;

2.不要使用Python内置函数名或内置数据类型或异常名作为标识符名;

3.关于下划线的约定,名字的开头和结尾都使用下划线的情况应该避免,因为Python中大量采用这种名字定义了各种特殊方法和变量;在有些情况,以一个或两个下划线引导的名称,但是没有使用两个下划线结尾的应该特殊对待。

举例>>> math=2

>>> math2

上面的语句是合法的,但是它将与math数据类型绑定的对象引用重新与int数据类型对象绑定,那么将不能正常使用math数据类型的属性了。>>> int=2

>>> int2

和上面的一样,是合法的但是不提倡。#合法

a123_=2

_a123=2

我=2 #中文

α=2 #希腊字母#不合法的标识符名

a-b=2 #因为包含了减法操作符,’-‘不是一个Unicode字母、数字、下划线,不能将2赋值给操作符

2miles=2 #不能数字开头

I’m=2 #单引号不是一个Unicode字母、数字或下划线

关于下划线还有一点想说的:

单一的下划线可以作为一个标识符,在交互解释器或Python Shell内部,下划线实际上存放了最后一个被评估的表达式的结果。在通常运行的程序中,使用下划线和其他普通标识符一样,需要自己预先定义,非系统占有。

在不关心迭代针对的数据项是,有些程序员喜欢在for…in..中使用_,如:#没有使用到迭代的数据项

for _ in (0,1,2,3,4,5):

print(“Hello”)

另外要注意一点,一些编写国际化程序的程序员一般会使用_作为其翻译函数的名称。这些程序员一般不使用gettext(“translate me”),而是使用_(“translate me”)。

当变量是私有的时候,用_xxx 来表示变量是很好的习惯。

在类中,“单下划线” 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;“双下划线” 开始的是类的私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。

以上就是python标识符的命名规则是什么的详细内容,更多请关注php中文网其它相关文章!

article_wechat2021.jpg?1111

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196620.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • object中提供的clone默认为浅克隆_接口的定义形式

    object中提供的clone默认为浅克隆_接口的定义形式cloneable接口的作用cloneable其实就是一个标记接口,只有实现这个接口后,然后在类中重写Object中的clone方法,然后通过类调用clone方法才能克隆成功,如果不实现这个接口,则会抛出CloneNotSupportedException(克隆不被支持)异常。Object中clone方法:这里有一个疑问,Object中的clone方法是一个空的方法,那么他是如何判断类…

    2022年10月15日
    0
  • 10道线程池面试题

    10道线程池面试题面试题1:ThreadPoolExecutor有哪些常用的方法?ThreadPoolExecutor有如下常用方法:submit()/execute():执行线程池shutdown()/shutdownNow():终止线程池isShutdown():判断线程是否终止getActiveCount():正在运行的线程数getCorePoolSize():获取核心线程数getMaximumPoolSize():获取最大线程数getQueue():获取线程池中的任务队列allowCoreThr

    2022年5月26日
    38
  • arrayqueue源码_一次视频解析源码

    arrayqueue源码_一次视频解析源码1、概述ArrayDeque是Deque接口的变长数组实现,它没有容量限制,会根据需要来扩容。它不是线程安全的,缺乏外部的同步机制,导致它不支持多线程的并发访问。Null对象是不许存在的,这个类很可能比Stack实现的栈和LinkedList实现的队列更快。其绝大多数操作运行在常数时间,除了一些需要线性时间执行的方法:remove、removeFirstOccurrence、removeLastOccurrence、contains、iterator.remove()和批量操作。它继承

    2022年9月20日
    0
  • goland 2021.2.3 服务器激活(在线激活)

    goland 2021.2.3 服务器激活(在线激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    365
  • jvm系列(七):jvm调优-工具篇「建议收藏」

    jvm系列(七):jvm调优-工具篇「建议收藏」16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化。工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用工具来分析jvm相关问题,长长可以到达事半功倍的效果来。jvm监控分析工具一般分为两

    2022年5月20日
    32
  • 活动图(Activity Diagram)

    活动图(Activity Diagram)一、什么是活动图?二、活动图的基本要素?三、活动图的作用?

    2022年6月6日
    221

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号