python构造函数命名 python中构造函数的作用

python构造函数class Person:
# 此处 , 两个 下划线 _ _
def __init__(self,name,job):
self.name=name
self.job=job
bob=Person('Bob Smith','dev')
print(bob.name,bob.job)
关于python的实例方法问题?题主你好,
python中创建新实例python构造函数命名的时候, 如果相应的类中定义python构造函数命名了__init__()方法的话, 会自动调用这个方法. 你可能认为名称"init"和"__init__"差不多, 但计算机其实是个很笨的东西, 它会完全按照设计去执行. 也就是说,在设计的时候就已经定死python构造函数命名了, 默认情况下, 创建新实例的时候, 会自动调用类中定义的__init__()方法, 只要你的方法名和__init__有一点不一样也不行.
下图是我在官网上找的关于__init__()调用的简单说明:
高亮部分说的大概意思就是上面讲的,如果相应类中定义了__init__()方法,则在创建该类实例的时候会自动调用里面定义的__init__()方法.
-----
希望可以帮到题主, 欢迎追问.
python怎样命名变量的模块名:
小写字母,单词之间用_分割
ad_stats.py
包名:
和模块名一样
类名:
单词首字母大写
AdStats
ConfigUtil
全局变量名(类变量,在java中相当于static变量):
大写字母,单词之间用_分割
NUMBER
COLOR_WRITE
普通变量:
小写字母,单词之间用_分割
this_is_a_var
实例变量:
以_开头 , 其他和普通变量一样
_price
_instance_var
私有实例变量(外部访问会报错):
以__开头(2个下划线),其他和普通变量一样
__private_var
专有变量:
__开头,__结尾 , 一般为python的自有变量,不要以这种方式命名
__doc__
__class__
普通函数:
和普通变量一样:
get_name()
count_number()
ad_stat()
私有函数(外部访问会报错):
以__开头(2个下划线),其他和普通函数一样
__get_name()
————————————————————————————————————————————————————————————————————
文件名
全小写,可使用下划线

应该是简短的、小写的名字 。如果下划线可以改善可读性可以加入 。如mypackage 。
模块
与包的规范同 。如mymodule 。

总是使用首字母大写单词串 。如MyClass 。内部类可以使用额外的前导下划线 。
函数方法
函数名应该为小写,可以用下划线风格单词以增加可读性 。如:myfunction,my_example_function 。
*注意*:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容 。
函数和方法的参数
总使用“self”作为实例方法的第一个参数 。总使用“cls”作为类方法的第一个参数 。
如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写 。
全局变量
对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线 。
*注意*:应避免使用全局变量
变量
变量名全部小写,由下划线连接各个单词 。如color = WHITE,this_is_a_variable = 1
*注意*:
1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀 。
2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员 。
3.变量名不应带有类型信息,因为Python是动态类型语言 。如 iValue、names_list、dict_obj 等都是不好的命名 。
常量
常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL 。
异常
以“Error”作为后缀 。
缩写
命名应当尽量使用全拼写的单词,缩写的情况有如下两种:
1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser 。
2.命名中含有长单词,对某个单词进行缩写 。这时应使用约定成俗的缩写方式 。
例如:
function 缩写为 fn
text 缩写为 txt
object 缩写为 obj
count 缩写为 cnt
number 缩写为 num,等 。
前导后缀下划线
一个前导下划线:表示非公有 。
一个后缀下划线:避免关键字冲突 。
两个前导下划线:当命名一个类属性引起名称冲突时使用 。
两个前导和后缀下划线:“魔”(有特殊用途)对象或者属性,例如__init__或者__file__ 。绝对不要创造这样的名字,而只是使用它们 。
*注意*:关于下划线的使用存在一些争议 。
Python 用下划线作为变量前缀和后缀指定特殊变量 。
_xxx不能用'from module import *'导入
__xxx__ 系统定义名字
__xxx类中的私有变量名
核心风格:避免用下划线作为变量名的开始 。
因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始 。一般来讲,变量名_xxx被看作是“私有的” , 在模块或类外不可以使用 。当变量是私有的时候 , 用_xxx 来表示变量是很好的习惯 。因为变量名__xxx__对Python 来说刑厥夂澹杂谄胀ǖ谋淞坑Φ北苊庹庵置绺瘛?br
"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;
"双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据 。
以单下划线开头(_foo)的代表不能直接访问的类属性 , 需通过类提供的接口进行访问 , 不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如 __init__()代表类的构造函数 。
特定命名方式
主要是指 __xxx__ 形式的系统保留字命名法 。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载 。如
class Base(object):
def __init__(self, id, parent = None):
self.__id__ = id
self.__parent__ = parent
def __message__(self, msgid):
# …略
其中 __id__、__parent__ 和 __message__ 都采用了系统保留字命名法 。
常见的构造函数类型构造函数类型分为四种、无参数构造函数、有参数构造函数、拷贝构造函数、默认构造函数 。
构造函数,是一种特殊的方法 。主要用来在创建对象时初始化对象 , 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载 。
python 变量下划线命名规则 单下划线和双下划线在Python变量、类、模块命名中都有不懂的含义 , 名称中都各有其含义 。有一些是程序员之间约定俗成的 , Python解释器不用强制其执行,但有些Python解释器会强制执行 。
本文从以下几种不同使用方式,对下划线的用途和含义进行说明:
1)变量
通常用于类内部变量的命名,表明该变量是该类私用变量 , 外部不要去访问它,但也是可以访问到的 。这只是程序员之间的一个约定俗成的做法 , Python解释器本身不会对它进行限制 。
我们创建一个类:
实例化A,并访问它的变量,aa._bar 也是可以访问的,但既然人家这么命名了,外部最好不要去访问了
2)函数和模块
和变量一样,这是一个私有函数,不建议外部程序调用该函数 。
我们创建一个脚本aa.py, 里面有2个函数 _aa , bb:
导入aa,分别调用函数 _aa和bb,bb 可以调用,但显示无 _aa
3)类
同变量和函数一样,都是私有变量,外部最好不要调用
用来避免和Python内置函数命名产生冲突,PEP8解释了这个约定 。
如class或def不能用作Python中的变量名称,如果之间用,会提示错误 。如果你非要用它,可以 使用 class_或 def_ 。
还有一些函数名 , 如chr,chr()是Python内置函数,用来表示ascii码对应的字符他的输入时数字 , 可以用十进制,也可以用十六进制 。如果你非要它来表示染色体,可以用chr_来代替 。当然如果你直接使用它作为变量名,它也不会报错,但最好不要这样使用 。
在python中定义私有变量只需要在变量名或函数名前加上 "__" (两个下划线),那么这个函数或变量就会成为私有的了 。
在内部,python使用一种 name mangling 技术 , 将__var 替换成 _classname__var,因此在外部调用__var会找不到 , 代替它的是_classname_var 。这种处理方式叫做名称修饰(name mangling):解释器更改变量的名称,以便在类被扩展的时候不容易产生冲突 。
由双下划线前缀和后缀包围的变量,不会应用名称修饰 , 因此不会被Python解释器修改:
我们创建一个类B,dir() 查看类的所有属性,发现 存在 __aa__
但是 , Python保留了有双前导和双末尾下划线的名称,用于特殊用途 。如,__init__对象构造函数,或 __call__ 它使得一个对象可以被调用 。所有我们尽量不要使用这种方式命名变量,以免和Python解释器内置的函数发生冲突 。
_ 不加任何其他字符 , 单独作为一个名字,用来表示某个临时的或者无关紧要的变量 。
举例1: 表示一个临时变量。在下面的循环中,我们不需要获取循环的索引,只是print n 行 'Hello World',可以用 "_" 来表示它只是一个临时值:
举例2: 表示一个不关心的变量 ,仅仅是个占位符变量,用来占位 。mlist 列表中,我只想获得1,2,4 位的变量,那 3 和 5 可以 用 _来占位
举例3 : 表示由解释器评估的最近一个表达式的结果 , 方便进行查看 。
Python构造函数 类是对象的模板,是抽象的 。
构造函数 init 是Python魔术方法之一,如图魔术方法
我们通过类模版去创建类的实例对象,然后再调用类定义的功能 。
那实例对象的属性是通过什么来初始化的?
这时候Python引入来构造函数 init
构造函数 , 会在创建实例对象之后Python会自动执行此方法,把初始化的属性特点放到实例对象里 。
通过前面的学习 , 我们知道一个python对象包含三个部分:id(识别码),type(对象类型),value(对象的值)
那么我们进一步深入对象包含的三部分:
我们通过类创建实例对象后,需要定义构造函数 init ()方法 。
构造方法用于执行实例对象的初始化工作,即对象创建之后,初始化当前对象的相关的属性,无返回值
构造函数重点 :
我们通过栗子来学习构造函数的过程
构造函数初始化实例对象过程如下:
1.Animal类会通过默认的 new ()方法为实例对象在堆内存中为开辟一个空间
敲黑板,重点来啦~
拓展:
我们今天学习了构造函数 init () , 其在创建对象之后被Python自动调用初始化实例对象属性数据值,无返回值,并且构造函数不能被显示调用 。
创建对象时,如果需要,构造函数可以接受参数 。当创建没有构造函数的类时,Python会自动创建一个不执行任何操作的默认构造函数 。
【python构造函数命名 python中构造函数的作用】 每个类必须有一个构造函数,即使它只依赖于默认构造函数
好啦,以上是本期内容,欢迎大佬评论区指正~
python构造函数命名的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python中构造函数的作用、python构造函数命名的信息别忘了在本站进行查找喔 。

    推荐阅读