我试图创建一个Python类(称之为CLASS
),其中有一个大多数用户都希望使用的主函数(称之为FUNC
)
在这种情况下,我希望用户能够调用类名,而不需要在最喜欢的函数前面使用括号,例如:
CLASS(B, C)
而不是CLASS().FUNC(B, C)
这是纯粹的美学,但这意味着,对于那些将使用FUNC而不关心可以显式调用的其他函数的用户,他们不需要编写恼人的花括号
下面是我将创建的类的一个简单代码示例,其中主函数(我称为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 main call within class)
但是,由于FUNC接受参数B
和C
,这将返回一个错误:
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解决了
输出:
相关问题 更多 >
编程相关推荐