类的内置方法__

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

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

 

继承的用法:
例子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)##取到里面的__内置方法
原文地址:https://www.cnblogs.com/yunxintryyoubest/p/9821601.html