python類方法繼承
⑴ python類屬性繼承順序的問題,求大神解惑~
首先批評樓上,第二次看到樓上這位誤人子弟。
任何類都有__init__方法,就和內java都有new一樣,真不容知道你是憑什麼如此信口亂說的。寫在類中而不是函數中的變數,不用加self而且不能加,它們將先於__init__被創建。
繼承順序是從右到左,你上面的沒問題,先繼承c3的name='c3',然後繼承c2的num=2,然後繼承c1的num=1,結果就是1。
⑵ Python中類繼承問題
Python新式類採用MRO演算法處理繼承關系,當調用c.say()方法時首先查找C類中是否定版義了權say()方法,若沒有繼續查找B類中是否定義了say()方法,找到B類中定義有say()方法,因此使用B類的say()方法。
⑶ Python子類繼承,如果不用父類的函數和方法,應該怎麼寫
子類繼承父類時,如果父類有需要初始化的屬性,那麼必須在子類中調用父類的初始化方法,幫助父類進行初始化,否則,子類可以不調用父類的初始化方法
代碼示例
"""
父類Car中沒有屬性需要初始化,所有子類中也不需要調用父類的初始化方法
"""
classCar:
defshow_name(self):
print('carname')
classEeleCar(Car):
pass
car=EeleCar()
car.show_name()
⑷ python 類的繼承
可能你有C++的基礎吧,C++確實可以不用帶上this。
我把你的代碼稍微改了一下,你可內以分別看看容cls1.n、cls2.n、self.n的輸出。
class cls1:
n=3
class cls2(cls1):
def __init__(self,cls1=cls1):
cls2.n += 1
self.n += 2
print 'cls1.n:%s'%cls1.n
print 'cls2.n:%s'%cls2.n
print 'self.n:%s'%self.n
cls2()
print 'cls1.n:%s'%cls1.n
可以看出兩個類和一個對象都可以在這里調用它們的n屬性,如果只敲一個n別人讀你的代碼時就比較容易產生岐義,雖然少打了5個字元,但是不符合簡單明確的pythonic哲學。
當然你也可以就認為python語法規則就是這么規定的。
⑸ python中,怎麼在繼承類中調用基類的方法
使用super來調用基類的方法,舉例如下:
class A(object):
def __init__(self, a = 0):
self.a = a
def get(self):
return self.a
class B(A):
def __init__(self, b):
super(B, self).__init__(b)
def get(self):
return super(B, self).get()
if __name__ == '__main__':
b = B(10)
print b.get()// 10
⑹ python3 繼承 在子類中如何調用父類中的方法
>>>classhi():
...defsay():
...print('hi')
...
>>>classha(hi):
...pass
...
>>>ha.say()
hi
是不是這樣子專呀屬
⑺ python如何實現類的繼承
classyourclass(你要繼承的類名):
pass
⑻ 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中的類怎麼繼承
#-*- coding:utf-8 -*-class Animal(object):
"""docstring for Animal"""
def __init__(self, name):
self.name = name def run(self):
print 'Animal is running...'class Dog(Animal):
"""docstring for Dog"""
def __init__(self,name):
# super(Dog, self).__init__(name)
Animal.__init__(self,name) def printName(self):
print 'Name: %s' % self.name
kk=Dog("kity")
kk.printName()
kk.run()