我是否理解Python中实例属性和类属性之间的区别?
假设我有一个方法和一个类:我是否理解Python中实例属性和类属性之间的区别?,python,class,methods,instance,Python,Class,Methods,Instance,假设我有一个方法和一个类: def my_method(self): self.mark = 'Knopfler' class MySubclass(object) my_method = my_method 我可以想出3到4种方法在另一个类中使用我的_方法 案例1: 如果我想在另一个类中访问我的_方法,如下所示: class MyClass(object): def __init__(self): self.my_subclass = MySubcl
def my_method(self):
self.mark = 'Knopfler'
class MySubclass(object)
my_method = my_method
我可以想出3到4种方法在另一个类中使用我的_方法
案例1:
如果我想在另一个类中访问我的_方法,如下所示:
class MyClass(object):
def __init__(self):
self.my_subclass = MySubclass()
my_inst = MyClass()
my_inst.my_subclass.my_method()
我是否正确地认为这将允许我在这样的实例上使用我的_方法:
class MyClass(object):
def __init__(self):
self.my_subclass = MySubclass()
my_inst = MyClass()
my_inst.my_subclass.my_method()
这似乎和我预期的一样,但如果我这样做:
案例2:
据我所知,前一行将my_method
应用于my_inst
和my_inst2
。对吗
案例3:
另一种获取my_方法作为MyClass属性的方法是:
class MyClass(object):
my_method = my_method
据我所知,当我有多个MyClass实例时,应用我的_方法只会影响它绑定到的实例。对吗
案例4(最后一个):
最后一个方法的问题是,它似乎将我的_方法创建为一个未绑定的方法,这不适合我的需要。是否有方法将现有方法添加为类定义中的绑定实例方法
嗯。仅此而已。请让我知道这四个案例中哪一个最适合使用。谢谢 根据上一个案例,您可以使用
MethodType
将方法绑定到类实例:
import types
class MyClass(object):
def __init__(self):
self.my_method = types.MethodType(my_method, self)
根据上一个案例,您可以使用
MethodType
将方法绑定到类实例:
import types
class MyClass(object):
def __init__(self):
self.my_method = types.MethodType(my_method, self)