首页 > 解决方案 > 如何修复“TypeError unsupported operand type(s) for /: 'int' and 'function'”?

问题描述

我一直低于错误,我不知道为什么 index 变成函数类型以及何时运行代码并返回整数。

发生异常:exceptions.TypeError 不支持/的操作数类型:“int”和“function”

这是我的代码:

def Zero(*eq):
    if len(eq) == 0:
        index = 0
        return index
    else:
        index = eq[0][0]
        k = eq[0][1]
        if k == "+":
            res = index + 0
        elif k == "-":
            res = index - 0
        elif k == "x":
            res = index * 0
        elif k == "/":
            res = 0 / index
        else:
            if index != 0:
                res = 0 // index
        if index == 0:
            error = "Division with zero is invalid"
            return error
        else:
            return res    

def Eight(*eq):
    if len(eq) == 0:
        index = 8
        return index
    else:
        index = eq[0][0]
        k = eq[0][1]
        if k == "+":
            res = index + 8
        elif k == "-":
            res = index - 8
        elif k == "x":
            res = index * 8
        elif k == "/" and index != 0:
            res = 8 / index
        else:
            if index != 0:
                res = 8 // index
        if index == 0:
            error = "Division with zero is invalid"
            return error
        else:
            return res    

def Divide(num):
    k = '/'
    return (num, k)

这是我的执行代码:

x = Zero(Divide(Eight))
print(x)

标签: pythonpython-2.7

解决方案


您应该Eight通过在函数对象后面加上括号来调用该函数;否则函数对象本身作为参数传递给Divide

x = Zero(Divide(Eight()))

推荐阅读