从另一个方法调用方法,该方法在同一个 class 中接受 3 个参数

calling method from another method which takes 3 parameters in the same class

我正在为计算器编写代码,方法是创建 class 名称“计算器”,它采用加、减、乘、除方法。这些方法采用两个参数并执行相应的操作。

现在,我必须创建另一个带有 3 个参数的方法名称“drive_command”。第一个参数是字符串,可以是'add'、'subtract'、'multiply'、'divide',另外两个参数是数字,会根据我们将在 drive_command 方法中传递的字符串。

那么我应该如何从另一个采用相同参数的方法调用方法class?

class calculator:
    def __init__(self):
        pass
    def add(self, num1, num2):
        self.num1 = num1
        self.num2 = num2
        return num1+num2
    def drive_command(command,x,y):
        if command == "add":
            self.add()

首先,您的 drive_command 行语法不正确 - 您的参数应该与 drive_command(self, command, x, y) 相同,否则 python 会混淆。要调用您的 add 函数,只需使用以下内容:

self.add(x,y)

代替

self.add()

希望对您有所帮助!

只需在 drive_command function.And 调用 self.add(x,y).

中添加 self 参数
class calculator:
    def __init__(self):
        pass
    def add(self, num1, num2):
        self.num1 = num1
        self.num2 = num2
        return num1+num2
    def drive_command(self,command,x,y):
        if command == "add":
            return self.add(x,y)

c = calculator()
value = c.drive_command('add',10,10)
print(value)

使用getattr函数:

class calculator:
    def __init__(self):
        pass
    def add(self, num1, num2):
        return num1+num2
    def drive_command(self, command,x,y):
        return getattr(self, command)(x, y)

c = calculator()
print(c.drive_command('add',10,10))