包、模块和函数的问题

2024-10-16 17:20:54 发布

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

我正在导入我在包中创建的模块

这是我的密码:

import test.addition._addition 
import test.subtraction._subtraction 
import test.multiplication._multiplication 


class calcul:


    def addition(self, a, b):

        self.c = _addition(a,b)
        print self.c

    def subtraction (self, a,b):

        self.c = _subtraction(a, b)
        print self.c

    def multiplication (self, a, b):

        self.c =_multiplication (a, b)
        print self.c

正如您在代码的前3行中注意到的, 我已经将模块_addition存储在名为addition的文件夹中,并且再次将addition文件夹存储在名为test的文件夹中。 减法和乘法也是一样的。 在每个文件夹中,我都创建了一个模块__init__,以确保它被声明为包

更清楚的是,下面是模块_addition中的代码

def _sous_addition(a,b):
    return float(a) + float(b)

问题是python告诉我:

未定义全局名称“\u addition”


Tags: 模块代码testimportself文件夹密码def
2条回答

您应该使用test.addition._addition._addition来调用该函数

更重要的是:

模块和函数不得使用相同的名称

这真的是一种非常糟糕的编码风格,迟早会影响你的。似乎德塞兹对此感到困惑。请避免

写入import test.addition._addition时,本地作用域中可用的名称是test,您可以使用test.addition._addition访问_addition函数。你需要使用它的全名

如果要将名为_addition的函数导入本地作用域,则需要编写以下内容之一:

from test.addition import _addition
import test.addition._addition as _addition

相关问题 更多 >