精华内容
下载资源
问答
  • 本文实例讲述了Python实现子类调用父类方法。分享给大家供大家参考。具体实现方法如下: python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。如果一个方法在子类的...
  • python中进行面向对象编程,当在子类的实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果在子类中这些属性未经过初始化,使用时就会出错。 例如以下的代码: class A(object): def __...
  • 子类继承父类后,需要调用父类方法和属性时,需要调用父类的初始化函数。 class A(object): def __init__(self): self.nameaa = 'aa' def funca(self): print('function a %s' % self.nameaa) class B(A): ...
  • 情况一: 子类需要自动调用父类方法子类不重写__init__()方法,实例化子类后,会自动调用父类的__init__()的方法。 class Father(object): def __init__(self, name): self.name=name print ( "name: %s" %( ...

    情况一: 子类需要自动调用父类的方法:子类不重写__init__()方法,实例化子类后,会自动调用父类的__init__()的方法。

    class Father(object):
        def __init__(self, name):
            self.name=name
            print ( "name: %s" %( self.name) )
        def getName(self):
            return 'Father ' + self.name
     
    class Son(Father):
        def getName(self):
            return 'Son '+self.name
     
    if __name__=='__main__':
        son=Son('runoob')
        print ( son.getName() )
    

    情况二:子类不需要自动调用父类的方法:子类重写__init__()方法,实例化子类后,将不会自动调用父类的__init__()的方法。

    class Father(object):
        def __init__(self, name):
            self.name=name
            print ( "name: %s" %( self.name) )
        def getName(self):
            return 'Father ' + self.name
     
    class Son(Father):
        def __init__(self, name):
            print ( "hi" )
            self.name =  name
        def getName(self):
            return 'Son '+self.name
     
    if __name__=='__main__':
        son=Son('runoob')
        print ( son.getName() )
    

    情况三:子类重写__init__()方法又需要调用父类的方法:使用super关键词:

    class Father(object):
        def __init__(self, name):
            self.name=name
            print ( "name: %s" %( self.name))
        def getName(self):
            return 'Father ' + self.name
     
    class Son(Father):
        def __init__(self, name):
            super(Son, self).__init__(name)
            print ("hi")
            self.name =  name
        def getName(self):
            return 'Son '+self.name
     
    if __name__=='__main__':
        son=Son('runoob')
        print ( son.getName() )
    

    原文链接:https://www.runoob.com/w3cnote/python-extends-init.html

    展开全文
  • Python 子类调用父类方法

    千次阅读 2013-12-18 22:25:21
    Python在继承时,如果子类重写了init()函数,则父类的init()...那么有没有比较方便的方法来从子类调用父类呢?  第一种是直接使用父类的类名来直接调用。(Python3.3) class Parent: def __init__(self): pr

    Python在继承时,如果子类重写了init()函数,则父类的init()不会被调用,这时如果子类只是想要对父类的init()函数进行简单的扩展的话,是很不方便的。那么有没有比较方便的方法来从子类调用父类呢?

            第一种是直接使用父类的类名来直接调用。(Python3.3)

    class Parent:
        def __init__(self):
            print('This is parent init.')
        def sleep(self):
            print("Parent sleeps.")
    
    class Child(Parent):
        def __init__(self):
            Parent.__init__(self)
            print('This is child init.')
        def sleep(self):
            print("Child sleeps.")
    
    c=Child()

            第二种是使用形如super(type, obj).methodName(args)调用,第一个参数表示从哪个类开始找其父类(不包括其自身),第二个参数表示类实例(一般使用self),参数args在父类方法的参数只有self时不写。

    class Parent:
        def __init__(self):
            print('This is parent init.')
        def sleep(self):
            print("Parent sleeps.")
    
    class Child(Parent):
        def __init__(self):
            #Parent.__init__(self)
            super(Child,self).__init__()
            print('This is child init.')
        def sleep(self):
            print("Child sleeps.")
    
    c=Child()

            当在类内部使用时,super(type, obj).methodName(args)中的type, obj可以省略不写。

            另外,在类外面也可以使用这一函数,比如当子类覆盖了父类的某一方法后,想要通过子类的对象调用父类的这一方法:

    class Parent:
        def __init__(self):
            print('This is parent init.')
        def sleep(self):
            print("Parent sleeps.")
    
    class Child(Parent):
        def __init__(self):
            #Parent.__init__(self)
            super().__init__()
            print('This is child init.')
        def sleep(self):
            print("Child sleeps.")
    
    c=Child()
    c.sleep()
    super(Child,c).sleep()
    展开全文
  • 这篇文章主要介绍了python 子类调用父类的构造函数实例具有很好的参考价值希望对大家有所帮助 一起跟 随小编过来看看吧 当子类继承父类后需要调用父类的方法和属性时需要调用父类的初始化函数 class A(object: def _...
  • _(self,name): super().__init__(name) def Saying(self): print ("I am "+ self.name + ", and i can howl") def animal_say_1(self): # 子类调用父类方法 # 方式2 super(Wolf,self).Saying() def animal_say_2...

    每个编程语言,都有固定的使用格式(称为语法)以及精确的含义(称为语义)
    编程语言分类:
    编译型语言:开发完成以后需要将所有的源代码都转换成可执行程序。
    解释型语言:每次执行程序都需要一边转换一边执行,用到哪些源代码就将哪些源代码转换成机器码,用不到的不进行任何处理

    python基本类型:
    类方法、静态方法
    类属性、实例属性
    类对象(类名加参数)、实例对象(根据类对象创建的实例对象)
    类名不仅可以调用类变量,也可以修改它的值,但是实例对象不可以。

    最常见的就是初始化方法__init__()

    python中类的初始化方法是__init__(),因此父类子类的初始化方法都是这个,如果子类不实现这个函数,初始化时调用父类的初始化函数,如果子类实现这个函数,就覆盖了父类的这个函数,既然继承父类,就要在这个函数里显式调用一下父类的__init__(),这跟C++,jAVA不一样,他们是自动调用父类初始化函数的。

    class Animal():
        def __init__(self, name):
            self.name = name
     
        def saySomething(self):
            print("I am " + self.name)
     
    class Dog(Animal):
        def __init__(self, name):
            super().__init__(name)
     
        def saySomething(self):
            print ("I am "+ self.name + ", and I can bark")
    

    1.直接写类名调用: parent_class.parent_attribute(self)

    2.用 super(type, obj).method(arg)方法调用:super(child_class, child_object).parent_attribute(arg) 【不需要写self】

    3.在类定义中调用本类的父类方法,可以直接 super().parent_method(arg)

    例:

    class Animal():
        def __init__(self,name):
            self.name=name
    
        def Saying(self):
            print("i am "+ self.name)
            
    class Wolf(Animal):
        def __init__(self,name):
            super().__init__(name)
    
        def Saying(self):
            print ("I am "+ self.name + ", and i can howl")
    
        def animal_say_1(self):
            # 子类调用父类的方法
            # 方式2
            super(Wolf,self).Saying()
    
        def animal_say_2(self):
            # 方式3 [推荐]
            super().Saying()
    
        def animal_say_3(self):
            # 方式1
            Animal.Saying(self)
    
    if __name__=="__main__":
        wolf = Wolf("grey wolf")
        wolf.Saying()  #调用方法方式:类名.函数()
        wolf.animal_say_1()
        wolf.animal_say_2()
        wolf.animal_say_3()   
        # 子类对象调用被覆盖的父类方法
        super(Wolf, wolf).Saying()
    
    展开全文
  • 在本篇文章里小编给大家整理了关于java子类调用父类方法中包含子类重写的实例方法以及相关知识点,需要的朋友们可以学习下。
  • python 子类调用父类 变量、方法

    千次阅读 2020-07-12 22:54:10
    class base(): def __init__(self): self.b = 5 def step(self): c = self.a print(c) def creat(self): self.pr() class A(base): def __init__(self): self.i = 1 print(self.i)
    class base():
        def __init__(self):
          self.b = 5
          
        def step(self):
            c = self.a
            print(c)
            
        def creat(self):
            self.pr()
            
    class A(base):
        def __init__(self):
            self.i = 1
            print(self.i)
            base.__init__(self)
    
        
        def pr(self):
            self.a = 999
    
    
    b = A()
    b.creat()
    b.step()
    #输出
    #1
    #999
    

    2两个例子一样

    class base():
        def step(self):
            c = self.a
            print(c)
            
        def creat(self):
            self.pr()
            
    class A(base): 
        def pr(self):
            self.a = 999
    
    
    b = A()
    b.creat()
    b.step()
    #输出 999
    
    展开全文
  • python子类调用父类方法总结

    千次阅读 2018-12-25 17:19:18
    class Animal(): def __init__(self, age): self.age=age class Cat(Animal): def __init__(self, age): self.name='lxq' ... # 以下是3种调用父类方法的写法 # 1.父类名.父类方法(self) #...
  • 本文主要给大家介绍了关于python子类调用父类函数的相关内容,Python中子类中的__init__()函数会覆盖父类的函数,一些情况往往需要在子类里调用父类函数。下面话不多说了,来一起看看详细的介绍: 如下例程里,??...
  • 子类调用父类函数时,用super(),super后面为啥要加一个括号?super是一个函数,函数的调用就需要加括号 直接用super.eat()等于调用super这个对象的eat方法,而super对象不存在? 还不清楚待完善 ...
  • python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。...继承父类后,就能调用父类方法和访问父类属性,而要完成整个集成过程,子类是需要调用...
  • 第一种方法: super().__init__(父类构造函数需要的参数,不包括self) class People: def __init__(self, name, age): self.name = name self.age = age class Student(People): def __init__(self, name...
  • __init__是Python类中的初始化方法,所以在继承关系中,无论是父类还是子类的初始化方法都是这个,子类想实现这个函数,就要覆盖父类的这个函数,既然继承父类,就要在这个函数里显式调用一下父类的__init__() ...
  • class Car: def __init__(self,name): self.name = name print('父类的构造方法调用。。。') class AutoCar(Car): def __init__(self,name,age): #Car.__init__(self,name) #方式...
  • 1.直接写类名调用: parent_class.parent_attribute(self) 1 class Animal(): 2 3 def __init__(self, name): 4 self.name = name 5 6 def say_name(self): 7 print(self.name) ...
  • 当一个类被子类继承且子类重写了构造方法后,若子类还想使用父类的构造方法,如果直接通过创建的子类对象调用父类方法会报错。解决办法有两个:一个是调用超类方法的未绑定版本,一个是使用super函数 见下面的例子...
  • 子类调用父类方法时,一般都是想对父类方法进行扩展 class Person(object): def __init__(self, name, age): self.name = name self.age = age def driver(self): print('开车太好玩了 ,10迈
  • 4. python 子类调用父类方法
  • 子类继承父类后,需要调用父类方法和属性时,需要调用父类的初始化函数。 class A(object): def __init__(self): self.nameaa = 'aa' def funca(self): print('function a %s' % self.nameaa) ...
  • python子类调用父类方法-super

    千次阅读 2015-07-08 18:08:58
    转载;... ...python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。如果一个方法在子类的实例中被调用,...继承父类后,就能调用父类方法和访问父类属性,而要完成整个
  • python中类的初始化方法是__init__(),因此父类子类的初始化方法都是这个,如果子类不实现这个函数,初始化时调用父类的初始化函数,如果子类实现这个函数,就覆盖了父类的这个函数,既然继承父类,就要在这个函数里...
  • 1.单继承子类方法重写,调用父类方法 A.方法一:[父类名.函数名(子类对象名)] class Bird: def __init__(self, size, color): self.size = size self.color = color def disp_info(self): print("My ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,227
精华内容 17,290
关键字:

python子类调用父类方法

python 订阅