1
比方說,我有一個方法和類:我瞭解Python中實例屬性和類屬性之間的區別嗎?
def my_method(self):
self.mark = 'Knopfler'
class MySubclass(object)
my_method = my_method
我能想到的3或4種方式到其他類中使用my_method。
案例1: 如果我想有機會獲得的又一個類別像這樣內my_method:
class MyClass(object):
def __init__(self):
self.my_subclass = MySubclass()
我在想,這將讓我在這樣的一個情況下使用my_method糾正:
my_inst = MyClass()
my_inst.my_subclass.my_method()
這似乎是工作像我期望的,但如果我不喜歡這樣寫道: 案例2:
class MyClass(object):
my_subclass = MySubclass
my_inst = MyClass()
my_inst2 = MyClass()
my_inst.my_subclass.my_method()
據我所知,上一行將應用my_method
到my_inst
和my_inst2
。那是對的嗎?
案例3: 另一種方式來獲得my_method作爲MyClass的的屬性是:
class MyClass(object):
my_method = my_method
,並按照我的理解,當我有MyClass的多個實例,應用my_method只會影響到的實例它是受約束的。那是對的嗎?
案例4(最後一個):
class MyClass(object):
def __init__(self):
self.my_method = my_method
,並用此方法,最終的問題是,它似乎產生了my_method爲不受約束的方法,它不適合我的需要。有沒有辦法在類定義中將現有方法添加爲綁定實例方法?
好的。就這些。請讓我知道這四種情況中哪一種最適合使用。謝謝。