我正在为神经网络编写一个类,我想对其进行某种形式的定制,以便您可以选择不同的成本函数和正则化。为此,我想将它们设置为__init__()方法中的默认参数。但是当我传入MyClass.static_method我的示例时,解释器会告诉我 MyClass 还没有(还)定义。为什么会这样,是否有比我更好的解决方法?
您当然可以将静态方法设置为默认参数,但随后会出现其他问题。例如,如果我想访问函数名称(我真正想要的),我不能立即使用__name__。我知道如何通过访问static_method.__func__.__name__. 但这似乎很笨拙,并且当您获得一个静态方法对象时,似乎不打算以这种方式使用它。
class MyClass:
@staticmethod
def static_method():
do_something()
def __init__(self, func=MyClass.static_method, func2=static_method):
self.name = func.__name__ #Does not work
self.name2 = func2.__func__.__name__ #Should work
我确实希望MyClass.static_method工作,但该类当时似乎不存在。那么,最后一次,为什么?
holdtom
相关分类