Python

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并没有定义privatepublic这两个编码关键字,它是通过在变量前加上__来实现对私有变量的声明的。
我们可以把上面的代码改成如下:

    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 = 
上一篇下一篇

猜你喜欢

热点阅读