python调用父类构造函数(Python如何调用父类的构造函数)

1.Python 如何调用父类的构造函数

"""

共有以下二种方法

"""

##class Foo(object):

## def __init__(self):

## self.val =100

## print(self.val)

##class Foo2(Foo):

## def __init__(self):

## Foo.__init__(self) #类调用实例方法时,需要传入self指代的实例

## print(self.val)

##

##if __name__ == '__main__':

## foo2 = Foo2()

class Foo(object):

def __init__(self):

self.val =100

class Foo2(Foo):

def __init__(self):

super().__init__()

print(self.val)

if __name__ == '__main__':

foo2 = Foo2()

调用父类的构造函数,子类调用父类的构造函数,python子类调用父类构造函数

2.Python中子类怎样调用父类方法

本文实例讲述了Python实现子类调用父类的方法。

分享给大家供大家参考。具体实现方法如下:python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。

如果一个方法在子类的实例中被调用,或者一个属性在子类的实例中被访问,但是该方法或属性在子类中并不存在,那么就会自动的去其父类中进行查找。继承父类后,就能调用父类方法和访问父类属性,而要完成整个集成过程,子类是需要调用的构造函数的。

子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题如果子类和父类都有构造函数,子类其实是重写了父类的构造函数,如果不显式调用父类构造函数,父类的构造函数就不会被执行,导致子类实例访问父类初始化方法中初始的变量就会出现问题。先来看看如下示例:复制代码代码如下:class A:def __init__(self):self.namea="aaa"def funca(self):print "function a : %s"%self.nameaclass B(A):def __init__(self):self.nameb="bbb"def funcb(self):print "function b : %s"%self.namebb=B()print b.namebb.funcb()b.funca()运行结果:复制代码代码如下:bbbfunction b : bbbTraceback (most recent call last):File "D:_method.py", line 19, in print b.funca()File "D:_method.py", line 6, in funcaprint "function a : %s"%self.nameaAttributeError: B instance has no attribute 'namea'在子类中,构造函数被重写,但新的构造方法没有任何关于初始化父类的namea属性的代码,为了达到预期的效果,子类的构造方法必须调用其父类的构造方法来进行基本的初始化。

有两种方法能达到这个目的:调用超类构造方法的未绑定版本,或者使用super函数。方法一:调用未绑定的超类构造方法修改代码,多增一行:复制代码代码如下:class A:def __init__(self):self.namea="aaa"def funca(self):print "function a : %s"%self.nameaclass B(A):def __init__(self):#这一行解决了问题A.__init__(self)self.nameb="bbb"def funcb(self):print "function b : %s"%self.namebb=B()print b.namebb.funcb()b.funca()如上有注释的一行解决了该问题,直接使用父类名称调用其构造函数即可。

这种方法叫做调用父类的未绑定的构造方法。在调用一个实例的方法时,该方法的self参数会被自动绑定到实例上(称为绑定方法)。

但如果直接调用类的方法(比如A.__init),那么就没有实例会被绑定。这样就可以自由的提供需要的self参数,这种方法称为未绑定unbound方法。

通过将当前的实例作为self参数提供给未绑定方法,B类就能使用其父类构造方法的所有实现,从而namea变量被设置。方法二:使用super函数修改代码,这次需要增加在原来代码上增加2行:复制代码代码如下:#父类需要继承object对象class A(object):def __init__(self):self.namea="aaa"def funca(self):print "function a : %s"%self.nameaclass B(A):def __init__(self):#这一行解决问题super(B,self).__init__()self.nameb="bbb"def funcb(self):print "function b : %s"%self.namebb=B()print b.namebb.funcb()b.funca()如上有注释的为新增的代码,其中第一句让类A继承自object类,这样才能使用super函数,因为这是python的“新式类”支持的特性。

当前的雷和对象可以作为super函数的参数使用,调用函数返回的对象的任何方法都是调用超类的方法,而不是当前类的方法。super函数会返回一个super对象,这个对象负责进行方法解析,解析过程其会自动查找所有的父类以及父类的父类。

方法一更直观,方法二可以一次初始化所有超类super函数比在超累中直接调用未绑定方法更直观,但是其最大的有点是如果子类继承了多个父类,它只需要使用一次super函数就可以。然而如果没有这个需求,直接使用A.__init__(self)更直观一些。

构造,调用,函数,python

3.python 中怎样调用父类方法

子类调用父类函数有以下方法:直接写类名调用用 super(type, obj).method(arg)方法调用。

在类定义中调用本类的父类方法,可以直接用super().method(arg)123456789class A: def method(self, arg): pass class B(A): def method(self, arg): # A.method(self,arg) # 1 # super(B, self).method(arg) # 2 super().method(arg) # 3。

4.python中单继承和多继承中子类默认继承父类的哪个构造函数

默认是__init__

【1】python中如果子类有自己的构造函数,不会自动调用父类的构造函数,如果需要用到父类的构造函数,则需要在子类的构造函数中显式的调用。

【2】如果子类没有自己的构造函数,则会直接从父类继承构造函数,这在单继承(一个子类只从一个父类派生)中没有任何理解上的问题。

问题:如果是多继承的情况,一个子类从多个父类派生,而子类又没有自己的构造函数,则子类默认会继承哪个父类的构造函数。

【3】子类从多个父类派生,而子类又没有自己的构造函数时,

(1)按顺序继承,哪个父类在最前面且它又有自己的构造函数,就继承它的构造函数;

(2)如果最前面第一个父类没有构造函数,则继承第2个的构造函数,第2个没有的话,再往后找,以此类推。

5.python中单继承和多继承中子类默认继承父类的哪个构造函数

默认是__init__【1】python中如果子类有自己的构造函数,不会自动调用父类的构造函数,如果需要用到父类的构造函数,则需要在子类的构造函数中显式的调用。

【2】如果子类没有自己的构造函数,则会直接从父类继承构造函数,这在单继承(一个子类只从一个父类派生)中没有任何理解上的问题。问题:如果是多继承的情况,一个子类从多个父类派生,而子类又没有自己的构造函数,则子类默认会继承哪个父类的构造函数。

【3】子类从多个父类派生,而子类又没有自己的构造函数时,(1)按顺序继承,哪个父类在最前面且它又有自己的构造函数,就继承它的构造函数;(2)如果最前面第一个父类没有构造函数,则继承第2个的构造函数,第2个没有的话,再往后找,以此类推。

6.python子类如何才能调用父类的方法

.直接写类来名调用

2.用 super(type, obj).method(arg)方法调用。源

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

在代码中调用对象的父类的方5261法的示例4102:

ob = B()super(B,ob).method(arg) #调用class B的父类class A的method。

初始化1653中调用父类初始化方法示例:class B(A):def __init__(self):super().__init__()

7.python继承父类 怎么引用

子类调用父类函数有以下方法:

直接写类名调用

用 super(type, obj).method(arg)方法调用。

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

1

2

3

4

5

6

7

8

9

class A:

def method(self, arg):

pass

class B(A):

def method(self, arg):

# A.method(self,arg) # 1

# super(B, self).method(arg) # 2

super().method(arg) # 3

python调用父类构造函数

转载请注明出处代码入门网 » python调用父类构造函数(Python如何调用父类的构造函数)

资讯

padavan安装python(anaconda与python什么关系)

阅读(23)

本文主要为您介绍padavan安装python,内容包括老毛子固件在编译的时候怎样加入python,anaconda与python什么关系,padavan华硕怎么安装adbyby。Theano:一个深度学习的开源工具包。Python:一门面抄向对象的、解释型袭的计算机编程(程序设计)语言,由

资讯

win32processpython(怎样使用python查询系统某一进程是否存在)

阅读(20)

本文主要为您介绍win32processpython,内容包括pythonwin32是什么?pythoncom如何理解,怎样使用python查询系统某一进程是否存在,怎样使用python查询系统某一进程是否存在。只需要一小段python代码,就可以解决用python查询判断系统进程是否存

资讯

python新建对象(python中怎么用类创建对象)

阅读(20)

本文主要为您介绍python新建对象,内容包括python中怎么用类创建对象,python如何定义新对象,python如何定义新对象。class BaseObject(object):def __init__(self, **kwg):self.__dict__ = d

资讯

pythonsslurllib(python报错urllib.error.URLError:)

阅读(16)

本文主要为您介绍pythonsslurllib,内容包括pythonurllib怎么用,pythonurllib,pythonhttplib2urllib区别。jango站点使用django_cas接入SSO(单点登录系统),配置完成后登录,抛出“urlopen error unknown ur

资讯

python变量替换(python中的变量替换怎么使用)

阅读(17)

本文主要为您介绍python变量替换,内容包括python中的变量替换怎么使用,Python怎样用变量替换字符串?,怎样通过参数替换python脚本里的变量值。1. 使用连接符: +world = "World"print "Hello " + world + " ! "2. 使用占位符来内插w

资讯

pythonsublime设置(如何用sublime运行python)

阅读(21)

本文主要为您介绍pythonsublime设置,内容包括如何用sublime运行python,如何用sublime设置python的开发环境,如何使用sublime编辑器运行python程序。工具/原料SublimeTextPython方法/步骤打开sublimeText,在菜单栏找到Tools>编译系统>新编译

资讯

pythonjson编码(python如何解析json代码分析)

阅读(21)

本文主要为您介绍pythonjson编码,内容包括python如何解析json代码分析,pythonjson怎么修改json数据,如何在python代码中引用json格式。先import json导入json模块,然后加载json编码如f是读取网页得到的json结构加载:json_r=json.loads(

资讯

pythonsortedlist(什么是python内置函数sorted)

阅读(21)

本文主要为您介绍pythonsortedlist,内容包括什么是python内置函数sorted,hashtable和SortedList有何区别?,python3.0中sorted函数怎么用。Python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。sort函数和sorte

资讯

pythonlastindexof(python中return到底什么意思)

阅读(14)

本文主要为您介绍pythonlastindexof,内容包括python新手请教,用python取字符串中最后的一个特定字符之前的字,python中return到底什么意思,python中的return有什么用。return,就是函数返回传。每一个函数都必须有一个返回值的,如果函数中没有

资讯

xsdxmlpython(用XSD创建XML模式有哪些优点?)

阅读(20)

本文主要为您介绍xsdxmlpython,内容包括如何定义XSD并在XML中使用XSD,用XSD创建XML模式优点?,xml,xsd,xslt区别是什么,各自的作用是什么?。XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会

资讯

pythonmap结构(求教Python编程中map)

阅读(18)

本文主要为您介绍pythonmap结构,内容包括python中map函数,python里怎么表示一个类似java里map的数据结构,python里怎么表示一个类似java里map的数据结构。_tabkeys = map(int,tabkeys[1:_len])相当于_tabkeys[0] = int(tabkeys[1]).

资讯

padavan安装python(anaconda与python什么关系)

阅读(23)

本文主要为您介绍padavan安装python,内容包括老毛子固件在编译的时候怎样加入python,anaconda与python什么关系,padavan华硕怎么安装adbyby。Theano:一个深度学习的开源工具包。Python:一门面抄向对象的、解释型袭的计算机编程(程序设计)语言,由

资讯

win32processpython(怎样使用python查询系统某一进程是否存在)

阅读(20)

本文主要为您介绍win32processpython,内容包括pythonwin32是什么?pythoncom如何理解,怎样使用python查询系统某一进程是否存在,怎样使用python查询系统某一进程是否存在。只需要一小段python代码,就可以解决用python查询判断系统进程是否存

资讯

python新建对象(python中怎么用类创建对象)

阅读(20)

本文主要为您介绍python新建对象,内容包括python中怎么用类创建对象,python如何定义新对象,python如何定义新对象。class BaseObject(object):def __init__(self, **kwg):self.__dict__ = d

资讯

pythonsslurllib(python报错urllib.error.URLError:)

阅读(16)

本文主要为您介绍pythonsslurllib,内容包括pythonurllib怎么用,pythonurllib,pythonhttplib2urllib区别。jango站点使用django_cas接入SSO(单点登录系统),配置完成后登录,抛出“urlopen error unknown ur

资讯

python变量替换(python中的变量替换怎么使用)

阅读(17)

本文主要为您介绍python变量替换,内容包括python中的变量替换怎么使用,Python怎样用变量替换字符串?,怎样通过参数替换python脚本里的变量值。1. 使用连接符: +world = "World"print "Hello " + world + " ! "2. 使用占位符来内插w

资讯

pythontwisted广播(局域网如何互连?)

阅读(1)

本文主要为您介绍pythontwisted广播,内容包括pythonPyTorch用matmul写矩阵相乘函数时,怎么让函数可以广播?,局域网如何互连?,学习python能干什么???。网络互连的目的:是将多个网络互相连接,以实现在更大范围内的信息交换资源共享和协同工作。

资讯

python精要参考pudn(python四种基本数据类型)

阅读(1)

本文主要为您介绍python精要参考pudn,内容包括python四种基本数据类型,要学习python需要学习哪些知识?,零基础如何开始学习Python?如何入门?。python是相当高级的语言,基本数据类型就很多,不过参考其他语言的,一定要四个的话:整形 int定义:age=1

资讯

python百分数加减(python如何进行多项式的加减乘除)

阅读(1)

本文主要为您介绍python百分数加减,内容包括python中,如何计算变量与百分数的结果?,python如何进行多项式的加减乘除,扩句(有要求)将下面的句子扩展成一句话,。如何进行多项式的加减乘除?这个题目太大!12个字,写出来很简单,答案却是初中教材上

资讯

wsgipython开发(如何创建部署WSGI类型的Python应用)

阅读(1)

本文主要为您介绍wsgipython开发,内容包括如何创建部署WSGI类型的Python应用,如何创建部署WSGI类型的Python应用,如何部署pythonweb程序。第一部分:安装必要工具。1.因为这是部署Python开发环境,所以安装pip可以简化一些软件的安装过程。(PIP

资讯

python集成测试框架(最受欢迎的Python开源框架有哪些)

阅读(1)

本文主要为您介绍python集成测试框架,内容包括最受欢迎的Python开源框架,企业级软件开发需要什么样的框架,Python企业应用到底如何?。Django: Python Web应用开发框架Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。D

资讯

python数据驱动测试(python中什么是测试数据和训练数据)

阅读(1)

本文主要为您介绍python数据驱动测试,内容包括python中什么是测试数据和训练数据,python学到什么程度就能满足测试需要,如何用python抓取js生成的数据:。当数据量特别大的时候,有几千几万条,为了验证模型的好坏,取出一部分用于训练,另一部分用

资讯

python函数返回值为list(返回值是一个list的函数,该怎么写)

阅读(1)

本文主要为您介绍python函数返回值为list,内容包括python设计一个名为listsum的函数,接收一个数字的列表,返回积累,python函数如何返回多个变量,c/c++调用python中返回值为list的函数。1.你先定义个实体类(当中的字段要跟table里一一对应,类

资讯

pythondatetime相加(python中datetime怎么用)

阅读(1)

本文主要为您介绍pythondatetime相加,内容包括python时间相加函数,python中datetime怎么用,python获取系统时间有问题(时区?)写了一段python代码。 日期相关的操作 from datetime import datetime from datetime import timedel