zoukankan      html  css  js  c++  java
  • 类的内置方法__

    __具有唯一性,不同类下面得相同__函数名字,是不同的,这个是有自己的作用域的,当你继承父类的时候,是不可以调用父类里面的这个方法的,

    继承:当子类没有这个方法或者属性的时候,就去父类里面找,__函数名字

     

    继承的用法:
    例子1
    class A():
      def __edit(self):
        print('A的edit方法')
        return 'A的edit'
    class B(A):
      print('B')
      def __edit(self):
        print('B的edit方法')
        return 'B的edut'

    ##第一种调用的方法
        obj=B().__edit()
        print(obj)
    ##执行报错,调用不了父类的__的方法(内置的方法)报错

     


    讲解:
    这个__edit在这个类下面是有自己的作用域的,外部是调用不了的

    例子2:在自己的作用域下面尽进行调用这个类下面内置的方法(特殊)

    class A():
      def __edit(self):
        print('A的edit方法')
        return 'A的edit'
    class B(A):
      print('B')
      def __edit(self):
        print('B的edit方法')
        return 'B的edut'

      def fun(self):
        a=self.__edit()
        # print(a)
        return a

    ##通过调用B下面的fun方法来调用__edit
        obj=B().fun()
        print(obj)

    ##通过init来调用这个内置的方法
    class B(A):
      print('B')
      def __init__(self):
        self.__edit()
    ##第二种
        # a=self.fun()
        # print(a)
      def __edit(self):
        print('B的edit方法')
        return 'B的edut'

      def fun(self):
        a=self.__edit()
        # print(a)
        return a
    B()

     

    例子3:
    继承调用父类的方法:(不是内置的方法)
    class A():

    def __init__(self):
    self.__edit()
      def __edit(self):
        print('A的edit方法')
        return 'A的edit'

      def fun2(self):
        print('A的fun2')
    class B(A):
      print('B')
      def __init__(self):
        self.fun2()

      # def __edit(self):
        # print('B的edit方法')
        # return 'B的edut'

      def fun(self):
        a=self.__edit()
        # print(a)
        return a
    B()

     

    ##继承调用父类的:(__edit作用域在父类那里,子类不能调用)
    报错
    class A():

      def __init__(self):
        self.__edit()
      def __edit(self):
        print('A的edit方法')
        return 'A的edit'

      def fun2(self):
        print('A的fun2')
    class B(A):
      print('B')
      def __init__(self):
        self.__edit()

        # def __edit(self):
        # print('B的edit方法')
        # return 'B的edut'

      def fun(self):
        a=self.__edit()
        # print(a)
        return a
    B()

    取里面的内置方法:

    class  FOO1():
    def __init__(self,name,age,addr):
    self.name=name
    self.age=age
    self.__addr=addr
    def fun1(self):
    print(self.__addr)



    obj=FOO1('axle',14,'上海')
    # obj.fun1()##通过函数调用的方法取里面的内置方法

    print(obj._FOO1__addr)##取到里面的__内置方法
  • 相关阅读:
    LeetCode题解No11——“盛水最多的容器”
    第二次作业
    第一章 模式识别基本概念
    第一次个人作业
    第02组 Beta版本演示
    第02组 Beta冲刺(4/4)
    第02组 Beta冲刺(3/4)
    第02组 Beta冲刺(2/4)
    第02组 Beta冲刺(1/4)
    第02组 Alpha事后诸葛亮
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/9821601.html
Copyright © 2011-2022 走看看