python調用父類
1. python 如何調用父類 的父類 的方法
2. python中子類調用父類的初始化函數初始化自身有些不太懂的地方!代碼如下
python2裡面需要這樣寫,python3裡面不需要寫參數,直接super().__init__()就可以了。
3. Python中如何使具有相同父類中的兩個子類之間進行方法調用
子類調用父類函數有以下方法:
直接寫類名調用
用 super(type, obj).method(arg)方法調用。
在類定義中調用本類的父類方法,可以直接用super().method(arg)
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
4. 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)更直觀一些。
5. Python 子類繼承父類後,可以調用父類中的函數嗎
classax:
defbx(self):#函數定義要有括弧,類方法最少要有一個參數
print'我出來了'
classcx(ax):
xxx='ssss'
dx=cx()#生成類實例要有括弧
dx.bx()
6. Python代碼問題classdefsuper這三個代碼是做什麼的和它們調用方式
摘要 您好,class時用作定義類的,def是定義函數的,super是子類調用父類初始化的
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
8. Python子類調用父類方法或子類定義的方法輸出會多出個'None'
我覺得最佳的回答的是不對的, 在python中若是函數沒有定義return的結果,則會默認返回一個none
deffunc():
a=1
b=2
a=func()
print(a)
>>>None
在官方文檔中也有說明的,而你列印出none的原因就是因為你在類的方法
中直接列印了字元串沒有返回值,將方法中的pring改成return即可
9. 如何在Python中調用父類的同名方法
你好,請看下面的例子和說明:python中類的初始化方法是__init__(),因此父類子類的初始化方法都是這個,如果子類不實現這個函數,初始化時調用父類的初始化函數,如果子類實現這個函數,就覆蓋了父類的這個函數,既然繼承父類,就要在這個函數里顯式調用一下父類的__init__(),這跟C++,jAVA不一樣,他們是自動調用父類初始化函數的。調用父類函數有以下方法:class A:def method(self, arg):pass class B(A):def method(self, arg):# A.method(self,arg) # 1# super(B, self).method(arg) #2super().method(arg) #31.直接寫類名調用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):
10. python子類調用父類方法出現None
None是tell函數執行的結果, 因為它沒有return所以返回值是None
class類名宜採用駝峰結構, 首字母應該大寫