为什么它说“三角形的面积”没有定义?

2024-05-29 04:40:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,有一个模块和一个单独的文件,如下所示 模块:

 def area_of_Triangle(b, h, units = "square centimeters"):
    aot = (b * h) / 2
    return "{0} {1}".format(aot, units)


 def MyTuple(*args):
    result = 0
    for arg in args:
        result += arg
    return result


 divide = lambda x, y: x / y if y != 0 else "Not Allowed"

单独的文件:

import MODULE1

print (area_of_Triangle(4.5, 5.6, units="square inches"))

print (MyTuple(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))

print (divide(2, 3))

每次我试着运行它时,它总是说“area\u of_Triangle”这个名字没有定义


Tags: 模块文件ofreturndefargargsarea
3条回答

您正在尝试从其他文件调用MODULE1函数。您需要在调用中指定MODULE1

import MODULE1

print (MODULE1.area_of_Triangle(4.5, 5.6, units="square inches"))

print (MODULE1.MyTuple(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))

print (MODULE1.divide(2, 3))

或者可以显式导入它们

from MODULE1 import area_of_Triangle, MyTuple, divide

print (area_of_Triangle(4.5, 5.6, units="square inches"))

print (MyTuple(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))

print (divide(2, 3))

为什么会有额外的麻烦?如果您同时导入了MODULE1和一些MODULE2,并且都定义了一个名为area_of_Triangle的函数,会怎么样?你如何区分哪个是哪个

您仅使用导入模块

import Module1

如果要导入python文件中的所有方法和变量,请使用*符号

比如说

from <modulename> import *

所以在你的情况下是这样的

from Module1 import *

或者,您也可以使用相同的方法导入特定方法,但不必使用*方法的名称

比如说

from Module1 import area_of_Triangle

如果您不希望执行上述操作

import Module1

也可以,只需调用如下方法:

Module1.area_of_Triangle(4.5, 5.6, units="square inches")

注意Module1.area_of_Triangle()

你必须写MODULE1.area_of_triange(<parameters>)并打印出来。或者,如果不想一次又一次地写入模块1,可以从模块中导入特定函数,或者使用from MODULE1 import *行导入所有函数,然后直接使用这些函数,而无需一次又一次地写入模块名称

相关问题 更多 >

    热门问题