Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从以数字开头的模块导入类_Python_Python Import - Fatal编程技术网

Python 从以数字开头的模块导入类

Python 从以数字开头的模块导入类,python,python-import,Python,Python Import,我需要从一个以数字开头的python文件中导入一个类(而不是整个文件)。 有一个关于导入整个模块的主题,它是有效的,但我找不到解决这个问题的方法。 () 通常是: from uni_class import Student 尽管文件名为123\u uni\u class 尝试了不同的 importlib.import_module("123_uni_class") 及 错误: from 123_uni_class import Student ^ Synta

我需要从一个以数字开头的python文件中导入一个类(而不是整个文件)。 有一个关于导入整个模块的主题,它是有效的,但我找不到解决这个问题的方法。 ()

通常是:

from uni_class import Student
尽管文件名为
123\u uni\u class

尝试了不同的

importlib.import_module("123_uni_class")

错误:

    from 123_uni_class import Student
            ^
 SyntaxError: invalid decimal literal

importlib.import\u module(“123\u uni\u class”)
导入模块后返回该模块,您必须为其指定一个有效名称才能重新使用该模块:

import importlib

my_uni_class = importlib.import_module("123_uni_class")
然后,您可以以“my_uni_class”的名称访问您的模块

如果
123\u uni\u class
在此上下文中有效,则这相当于
import 123\u uni\u class作为我的uni\u class

它适用于我:

Python 3.6.8 (default, Feb 14 2019, 22:09:48)
[GCC 7.4.0] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import importlib
>>> importlib.import_module('123_a')
<module '123_a' from '/path/to/123_a.py'>
>>> __import__('123_a')
<module '123_a' from '/path/to/123_a.py'>

例如,这种通用技术用于读取用Python编写的配置文件等。但我不鼓励正常使用,建议您只使用有效的模块名。

请粘贴完整的回溯。我不认为你会在这里得到一个语法错误,除非你在其他地方写了123大学班进口学生的那行
。一般来说,我认为你应该重命名你的模块。一般来说,没有很好的理由尝试这样做。好吧,这就是我所说的,我想这样做,但不能bcs的这个错误,所以,删除或重写这行。请看我的最新答案。
Python 3.6.8 (default, Feb 14 2019, 22:09:48)
[GCC 7.4.0] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import importlib
>>> importlib.import_module('123_a')
<module '123_a' from '/path/to/123_a.py'>
>>> __import__('123_a')
<module '123_a' from '/path/to/123_a.py'>
mod = {}
with open('123_uni_class.py') as fobj:
    exec(fobj.read(), mod)

Student = mod['Student']