Python 类默认使用一个函数



我正在尝试创建一个Python类(称之为CLASS(,其中有一个大多数用户都希望使用的主函数(称之为FUNC(。

在这种情况下,我希望用户能够调用类名,而无需在最喜欢的函数之前使用括号,例如:

CLASS(B, C)而不是CLASS().FUNC(B, C)

这纯粹是美学上的,但这意味着对于将使用 FUNC 并且不关心他们可以显式调用的其他函数的用户,他们不需要编写烦人的大括号。

下面是我将创建的类类型的简单代码示例,其中 main 函数(为了连续性,我称之为 FUNC(利用类中的其他函数:

class Example:
def dummy_operation(self,A):
return A*2.
def FUNC(self,B,C):
A = self.dummy_operation(B)
result = A + C
return result

所以在这里,Example代替了易读性的CLASS

一种方法看起来像使用if '__main__'语句(请参阅 - 类中的 Python 主调用(。

但是,由于 FUNC 采用参数BC,这将返回错误:

if __name__ == '__main__':
Example().target_function()

外:

TypeError: target_function() missing 2 required positional arguments: 'B' and 'C'

有没有办法通过Example(B,C),实际上它正在调用Example().FUNC(B,C)但如果需要,仍然可以调用Example().dummy_operation(A)

提前非常感谢!

这个问题在评论中@snakecharmerb解决了。

class Example:
def dummy_operation(self,A):
return A*2.
def __call__(self,B,C):
A = self.dummy_operation(B)
result = A + C
return result
Example = Example()
print(Example(1,1))
print(Example.dummy_operation(1))

外:

3.0
2.0

相关内容

  • 没有找到相关文章

最新更新