Допустим, у меня есть метод и класс:
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 как несвязанный метод, который не соответствует моим потребностям. Есть ли способ добавить существующий метод в качестве метода привязанного экземпляра в определении класса?
Ok. Это все. Пожалуйста, дайте мне знать, какой из этих четырех случаев наиболее целесообразно использовать. Благодарю.