在类定义之外定义方法?

在类定义之外定义方法?,第1张

在类定义之外定义方法

是。您可以在类外部定义函数,然后在类主体中将其用作方法:

def func(self):    print("func")class MyClass:    myMethod = func

您也可以在定义一个函数后将其添加到类中:

class MyClass:    passdef func(self):    print("func")MyClass.myMethod = func

您可以根据需要在不同的模块中定义函数和类,但是我建议不要在一个模块中定义该类,然后再将其导入另一个模块中并向其中动态添加方法(如第二个示例),因为那样的话d根据是否已导入另一个模块,其行为与类具有令人惊讶的不同。

我要指出的是,尽管这在Python中是可能的,但这有点不寻常。您在评论中提到“允许用户添加更多”方法。听起来很奇怪。如果您正在编写一个库,则可能不希望该库的用户向该库中的类动态添加方法。库用户创建自己的继承自您的类的子类比直接更改您的子类更为正常。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5644199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存