【发布时间】:2020-02-26 23:49:36
【问题描述】:
我正在尝试在 Python 中创建一个类,其方法在不同实例之间的定义不同(使用相同的名称)。不同的定义可以基于创建实例时类的输入。
例如:
Class A:
def __init__(self, a):
...
def foo(self):
...
a1 = A(input1)
a2 = A(input2)
a1.foo()
a2.foo()
我希望为这两个实例定义不同的 foo()。我可以将此逻辑编码到foo 方法中,但想知道是否有更简洁或更Pythonic 的方式来执行此操作。
谢谢。
【问题讨论】:
-
你想用这种有问题的技术来完成什么?
-
你的例子没有任何帮助。
-
我有一个对象渲染方法,它在各种对象(实例)之间的工作方式完全不同。我没有创建一个检查实例并应用特定渲染逻辑的复杂方法,而是很好奇这是否可以通过基于实例本身的同一方法的多个定义来完成。
-
如果每个实例的代码不同,则在创建实例时将其作为回调传递可能是有意义的。
A(a, some_function)
标签: python class methods instance