• 类的内置方法__


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

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

     

    继承的用法:
    例子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)##取到里面的__内置方法
  • 相关阅读:
    20181022-JSP 开发环境搭建
    20181019-JSP 教程/简介
    20180829-Java多线程编程
    20180827(02)- Java发送邮件
    20180827-Java网络编程
    20180912-Java实例02
    docker安装redis
    springboot2集成swagger2出现guava包下的FluentIterable.append方法找不到
    Linux Centos7 网络设置UUID号的修改方法
    CentOS 7 主机名bogon解决办法
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/9821601.html
Copyright © 2020-2023  润新知