‘壹’ 请问python如何将一个子类对象赋值给父类对象
classF:
def__init__(self):
pass
deffun(self):
print"InF"
classS(F):
def__init__(self):
F.__init()
deffun(self):
print"InS"
f=S()
f.fun()
python本来就是动态类型的语言,所以本来就不需要像C#那样的赋值,像上面的代码即可以实现C#里面的功能。
‘贰’ python子类如何才能调用父类的方法
.直接写类名调用
2.用 super(type, obj).method(arg)方法调用。
3.在类定义中调用本类的父类方法,可以直接 super().method(arg).
在代码中调用对象的父类的方法的示例:
ob = B()super(B,ob).method(arg) #调用class B的父类class A的method。
初始化中调用父类初始化方法示例:class B(A):def __init__(self):super().__init__()
‘叁’ python 子类怎么调用父类方法
两种方法解决:
- 第一种
class A:
def __init__(self):
self.namea="aaa"
def funca(self):
print "function a : %s"%self.namea
class B(A):
def __init__(self):
#这一行解决了问题
A.__init__(self)
self.nameb="bbb"
def funcb(self):
print "function b : %s"%self.nameb
b=B()
print b.nameb
b.funcb()
b.funca()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
第二种:
#父类需要继承object对象
class A(object):
def __init__(self):
self.namea="aaa"
def funca(self):
print "function a : %s"%self.namea
class B(A):
def __init__(self):
#这一行解决问题
super(B,self).__init__()
self.nameb="bbb"
def funcb(self):
print "function b : %s"%self.nameb
b=B()
print b.nameb
b.funcb()
b.funca()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PS:让类A继承自object类,这样才能使用super函数,因为这是python的“新式类”支持的特性。当前的class和对象可以作为super函数的参数使用,调用函数返回的对象的任何方法都是调用超类的方法,而不是当前类的方法。
优劣:
- 方法一更直观,方法二可以一次初始化所有超类
- super函数比在超类中直接调用未绑定方法更直观,但是其最大的优点是如果子类继承了多个父类,它只需要使用一次super函数就可以。然而如果没有这个需求,直接使用A.init(self)更直观一些。
‘肆’ Python子类与父类的关系问题
不如贴代码
可以去看下 MRO 的东西, 以及类/实例的属性和__dict__的关系
属性是怎么查找的, getattr, __getattr__, __getattribute__ 这几个是怎么运行的...
另外你这个 method 是什么我真的没懂... 什么叫 A类的类名...
‘伍’ Python继承父类parent的正确格式为
格式:
class 子类名(父类1,父类2)
类的继承就是让子类拥有父类的属性和方法。
几个注意:py支持多继承
子类继承的父类只能初始化一次,如果父类1和父类2有共同的父类或者祖先类,则类初始化的时候会失败。
当父类具有相同方法时,会调用最先继承的父类中的方法,如果要指定父类,则需要重写此方法,并通过父类名.方法名来调用指定父类方法。
‘陆’ python2.7怎么查看类或对象的父类
In[1]:classa(list):
...:pass
...:
In[2]:a.__bases__
Out[2]:(list,)
In[3]:a.mro()
Out[3]:[__main__.a,list,object]
In[4]:
如果解决了您的问题请采纳!
如果未解决请继续追问
‘柒’ Python中子类怎样调用父类方法
你好,请看下面的例子和说明:
python中类的初始化方法是__init__(),因此父类子类的初始化方法都是这个,如果子类不实现这个函数,初始化时调用父类的初始化函数,如果子类实现这个函数,就覆盖了父类的这个函数,既然继承父类,就要在这个函数里显式调用一下父类的__init__(),这跟C++,jAVA不一样,他们是自动调用父类初始化函数的。
调用父类函数有以下方法:class A:def method(self, arg):pass
classB(A):
defmethod(self,arg):
#A.method(self,arg)#1
#super(B,self).method(arg)#2
super().method(arg)#3
1.直接写类名调用
2.用super(type,obj).method(arg)方法调用。
3.在类定义中调用本类的父类方法,可以直接
super().method(arg).
在代码中调用对象的父类的方法的示例:ob = B()super(B,ob).method(arg) #调用class B的父类class A的method。
初始化中调用父类初始化方法示例:
class B(A):
‘捌’ 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 如何调用父类 的父类 的方法