class a():
def bar(self):
print("bar")
#這裡面的self相當於c,也就是從d 開始重新找
self.f1()
class b(a):
def f1(self):
print("b")
class c():
def f1(self):
print("c")
class d(c,b):
pass
c=d()
c.bar()
》bar
c
c呼叫父類的構造方法
class animal():
def __init__(self):
self.ti = "動物"
print("1")
class cat(animal):
def __init__(self):
self.a="貓"
print(2)
#將物件c根據self匯入animal
super(cat, self).__init__()
#animal.__init__(self)c=cat()
++++++++++++++反射++++++++++++++++++++++
class foo():
def __init__(self,name):
self.name = name
def show(self):
print("show")
obj = foo('alex')
#反射:類,只能找類裡面的成員(__init__,show)
#以字串的形式
r = hasattr(foo,"name")
print(r)
#反射:物件,全能
#以字串的形式
r = hasattr(obj,"name")
print(r)
》false
true
從上面可以看出來。利用反射,當反射的條件是類的時候只能返回類裡面的方法,當用物件的時候返回的是屬性加方法
二
上面的檔案的包名叫做__init__ ,引出下面的例子
#匯入檔案
m = __import__("__init__",fromlist=true)
#匯入類
class_name = getattr(m,'foo')
#得到物件
obj=class_name("aexl")
#得到物件屬性
val = getattr(obj,"name")
#列印print(val)
》>>
aexl
python物件導向 二
屬性查詢 類有兩種屬性 資料屬性和函式屬性 類的資料屬性是所有物件共享的 類的函式屬性是繫結給物件用的 class beijingstudent school beijing def learn self print is learning def eat self print is eating ...
python學習(二) 物件導向
物件導向的方法簡介 類 class 方法重寫 override 繼承 例項化 類的方法必須要加乙個self引數 class classname def init self name salary self 是指類的例項而不是類 self name name 建立類物件 x class1 這是通過呼叫...
python之物件導向二
什麼時候用到多型?如果我們需要用到父類的方法的時候而且要修改父類方法的時候,或者想呈現出不同的效果是就會用到多型 這裡舉個小例子 class person object def get name self print 張三 class studens person 繼承自person類 def ge...