美文网首页Python
Python-Class的init

Python-Class的init

作者: steff720 | 来源:发表于2016-11-09 09:48 被阅读61次

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 = 

相关文章

  • Python-Class的init

    init方法# 无论任何语言,在编写类时,第一件事就是进行构造函数的编写,这个类函数在python中叫做__ini...

  • Android启动Init进程源码分析

    Init 我们可以在源码/system/core/init/init.c查看init进程的实现 init.rc是什...

  • init

  • init

    First Commit. TYPO TEST ### markdown test SEO Test: ppq19...

  • init

    System.init();

  • init

    准备加入新公司了,也算是开始自己新的测试生涯。今年的目标也是提高点测试相关技术,正好突发奇想可以在这写个blog记...

  • init

    简书第一篇,写一写总结和展望。 14年9月起工作到现在,除了代码输出,一直有记笔记的习惯,但是都很零散,感觉很粗糙...

  • init

    2016年8月5日,我开始了在简书的第一篇文章。

  • init

    今天开始吧! 最近在读乔布斯传记,也在学习英语听力,听到了乔布斯05年在斯坦福大学的毕业典礼上的一个演讲,下面是我...

  • INIT

    Designated Initializers(指定构造器) Convenience Initializers(便...

网友评论

    本文标题:Python-Class的init

    本文链接:https://www.haomeiwen.com/subject/temzuttx.html