Python-Class的init
2016-11-09 本文已影响61人
steff720
init方法#
无论任何语言,在编写类时,第一件事就是进行构造函数的编写,这个类函数在python中叫做__init__
Dive into python 3
中是这么介绍这个函数的:
1 类实例创建后, init() 方法被立即调用。很容易将其——但技术上来说不正确——称为该类的“构造函数” 。 很容易,因为它看起来很像 C++ 的构造函数(按约定, init() 是类中第一个被定义的方法),行为一致(是类的新实例中第一片被执行的代码), 看起来完全一样。 错了, 因为init()方法调用时,对象已经创建了,你已经有了一个合法类对象的引用。
2 每个方法的第一个参数,包括 init() 方法,永远指向当前的类对象。 习惯上,该参数叫 self。 请不要取别的名字,只用 self; 这是一个很强的命名习惯。
一般来说,__init__
中主要声明该类的变量有哪些,一个规范的__init__
函数如下:
def __init__(self, username,password,url,max):
self.username = username
self.pw = password
self.url = []
self.max = 34
private和public#
作为一个C#或者Java程序猿,一定很熟悉类中私有变量和共有变量的区别。
python并没有定义private
和public
这两个编码关键字,它是通过在变量前加上__
来实现对私有变量的声明的。
我们可以把上面的代码改成如下:
def __init__(self, username,password,url,max):
super(exampleClass, self).__init__()
self.__username = username
self.__pw = password
self.url = []
self.max = 34
这样你就无法通过如下的方式来访问username这个变量了
t = classExample()
t.username =
python给private变量
留了一个公有访问入口,如你想访问以上username变量,可以这么写
t = classExample()
t._classExample__username =