Python 使用连字符名称从模块导入函数

Python 使用连字符名称从模块导入函数,python,function,module,Python,Function,Module,我无法从名称中带有“-”的模块导入函数。我们必须以特定的名称保存模块,因此我不能更改名称。 那么,我应该如何导入这个: from surname-funkcije import izris_kvadrata, NSVN, NSV1 我知道如何导入模块,应该是这样的: surname_funkcije = __import__("surname-funkcije") 但是它的功能如何?这是一个非法的模块名。只需更改模块的名称。在python 3.7上,给定姓氏funkcije.py,内容如下:

我无法从名称中带有“-”的模块导入函数。我们必须以特定的名称保存模块,因此我不能更改名称。 那么,我应该如何导入这个:

from surname-funkcije import izris_kvadrata, NSVN, NSV1
我知道如何导入模块,应该是这样的:

surname_funkcije = __import__("surname-funkcije")

但是它的功能如何?

这是一个非法的模块名。只需更改模块的名称。

在python 3.7上,给定
姓氏funkcije.py
,内容如下:

NSVN = 42
NSV1 = 'I do not know what this is'

def izris_kvadrata(a, b):
    return a+b
您可以这样导入和使用所述模块:

import importlib

m = importlib.import_module('surname-funkcije')
izris_kvadrata, NSVN, NSV1 = m.izris_kvadrata, m.NSVN, m.NSV1

help(izris_kvadrata)
c = izris_kvadrata(NSVN, 6)
print("NSVN = {}; NSV1 = {}".format(NSVN, NSV1))
print("c = {}".format(c))
这给了我这样的输出:

Help on function izris_kvadrata in module surname-funkcije:

izris_kvadrata(a, b)

NSVN = 42; NSV1 = I do not know what this is
c = 48

这太傻了。在Python中,您不可能“必须”为模块指定一个非法的名称。用一个合适的名字。我知道,但是我的老师坚持名字应该是这样的。那现在就找一个新老师。坚持Python中不允许的东西的老师是毫无价值的。告诉你的管理层,他们的规则违反了他们希望你使用的语言的语法。这显然是为另一种编程语言制定的规则,这种语言在其参考框架之外被盲目而愚蠢地应用。可能的重复:我很好奇“我们必须以特定的名称保存模块”