【发布时间】:2015-05-15 21:58:34
【问题描述】:
我在 python 中有一个这样的类:
class xyz:
def abc():
#Do Something
def add(x,y):
#Add x and y
def sub(x,y):
#Subtract y from x
def mul(x,y):
#multiply x ynd y
注意:这里的“add”、“sub”和“mul”是嵌套方法。
- 是否允许制作这样的课程?
-
如果允许,那么我想通过函数参数访问方法“add”、“sub”和“mul”。例如:
from xyz import xyz def jkl(input): abc.(input) # By doing this it will raise syntax error. This is just for refernece.
所以,当我调用 jkl(add(2,3)) 时,它应该添加数字。同样,当我调用 jkl(sub(4,3)) 时,它应该减去数字。
可以吗?
【问题讨论】:
-
您可以重载标准运算符。见这里:stackoverflow.com/questions/5438574/…
-
这并不能真正回答您的问题,但对于 Python 中的 cmets,请使用
#而不是//。字符串文字也很好。 -
只是一个想法:您可以创建一个字典并将函数分配给字典值。这样你就可以做 jkl(key="add", args=(2,3)) ,然后调用 abc[key](args)。但是,对于您真正尝试做的任何事情,可能有一种不同的方法会更好。
-
可能只有我一个人,但我无法理解您要做什么。你的
def abc:块应该做什么?它只会导致语法错误。 -
看起来 OP 正在尝试将类用作模块/包。这个问题的答案需要解释模块/包导入是如何工作的。要么那个,要么静态方法。
标签: python