美文网首页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

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