美文网首页
个人总结的相关python在继承,私有函数,私有变量方面的理解

个人总结的相关python在继承,私有函数,私有变量方面的理解

作者: 采星星的小太阳BavaLI | 来源:发表于2020-04-24 17:33 被阅读0次

    一开始我也是很蒙的,现在把自己的代码及截图给到大家,慢慢悟吧,去思考了才会更深刻,才会有自己的理解:

    #继承

    class Father(object):

        f = 1

        def __init__(self, age):

            self.age=age

            print ( "Father——age: %d" %( self.age) )

        def getAge(self):

            print('Father------%d'%self.age)

            print(id(self))

    class Son(Father):

    #    f=2

        def __init__(self, age):

            print ( "son------hello world" )

            super().__init__(age)#使用super调用父类的方法

            self.age =  age

        def getAge(self):

            Father.getAge(self)#使用类名直接调用父类的方法,注意,这个时候就要传入self参数,不然报错self就是指向当前的实例!

            print('son------get age!')

            print(id(self))

    son=Son(18)

    son.getAge()

    1

    class Father():

        def __private(self):

            print("父类的私有函数private")

        def _protected(self):

            print("父类的受保护函数protected")

        def public(self):

            print("父类的公有函数public")

            self.__private()

            self._protected()

    class Son(Father):

        __son='private_son'

        _son='protectes_son2'

        def __private(self):

            print("子类的重载私有函数private")

        def _protected(self):

            print("子类的重载受保护protected")

        def prit(self):

            print(self.__son)

    s = Son()

    s.public()

    # 单下划线的函数或属性,在类的定义中可以调用和访问,类的实例也可以直接访问,子类也可以访问;s._protected()可以访问

    # 双下划线的函数或属性,在类的定义中可以调用和访问,类的实例不可以直接访问,子类不可以访问。s.__private()报错

    2 3 4

    相关文章

      网友评论

          本文标题:个人总结的相关python在继承,私有函数,私有变量方面的理解

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