Python代码。输入模块的名称错误

时间:2015-11-18 08:34:38

标签: python function module python-import importerror

以下是我正在使用的代码。我正在使用两组代码。当我将代码组合到一个程序中时,它按照预期的方式工作。当我尝试导入“arithemtics”模块时,它不会定义变量。我花了很多时间试图解决这个问题,我担心这是非常简单的事情

import arithmetics


def main():
    num1 = float(input('Enter a number:'))
    num2 = float(input('Enter another number:'))

    total(num1,num2)
    difference(num1,num2)
    product(num1,num2)
    quotient(num1,num2)

main()

这是“算术”输入模块

def total(num1,num2):
    total = num1 + num2
    print(format(total, ',.1f'))


def difference(num1,num2):
    difference = num1 % num2
    print(format(difference, ',.1f'))

def product(num1,num2):
    product = num1 * num2
    print(product)

def quotient(num1,num2):
    quotient = num1 / num2
    print(quotient)

2 个答案:

答案 0 :(得分:1)

import arithmetics


def main():
    num1 = float(input('Enter a number:'))
    num2 = float(input('Enter another number:'))

    arithmetics.total(num1,num2)
    arithmetics.difference(num1,num2)
    arithmetics.product(num1,num2)
    arithmetics.quotient(num1,num2)

main()

这是因为函数在arithmetics模块中,只是通过执行import arithmetics无法全局访问,arithmetics中的函数需要使用模块名称调用,后跟函数名称如arithmetics.<function>

或者你可以这样做:

from arithmetics import *

这会将arithmetics中的所有函数导入到脚本范围内,就好像它们是在脚本本身中定义的一样。

请注意,执行from x import *(在这种情况下尤其是明星)并不是最优雅或最有效的处理方式,如果可能的话,尝试仅从库中导入所需的功能(在您的情况下为star会工作,因为你无论如何都要使用所有函数,但是其他库可能很大,你可能不需要所有的函数。)

要做到这一点,你可以这样做:

from arithmetics import total, difference, product, quotient

答案 1 :(得分:1)

如果您使用

import arithmetics

您需要限定像这样的函数名称

arithmetics.total
arithmetics.difference
arithmetics.product
arithmetics.quotient

可选地

from arithmetics import total, difference, product, quotient

然后名称可以在模块中正常使用

第三种选择

from arithmetics import *

不鼓励,因为它不明确,当有人为arithmetics添加更多可能导致冲突的名称时,可能会导致神秘破损