我创建了一个名为thread.py的文件,如果我要导入它,它就不起作用了。当我使用像cheese.py这样的文件名时,它可以正常工作
import json
from thread import Thread
class Board:
name = ""
shortcode = ""
threads = []
url = ""
api_url = ""
json = ""
def __init__(self, board, api_url, json):
self.shortcode = board
self.api_url = api_url
self.json = json
self.__getPosts()
def __getPosts(self):
i = 0
for thread in self.json[0]['threads']:
thread = Thread()
self.threads[i] = thread
i+=1
thread.py
class Thread:
def __init__(self):
i = 1
答案 0 :(得分:5)
名称为thread
的内置模块已存在。
>>> import thread
>>> thread
<module 'thread' (built-in)>
当您尝试使用from thread import Thread
导入时,它会尝试搜索内置thread
模块中不存在的名为Thread
的属性。
>>> hasattr(thread, 'Thread')
False
当导入名为spam的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,则会在变量sys.path
给出的目录列表中搜索名为spam.py的文件。
sys.path
已从以下位置初始化:
包含输入脚本(或当前目录)的目录。
PYTHONPATH(目录名列表,语法与shell变量PATH相同)。
依赖于安装的默认值。
了解更多here
建议您使用与内置模块名称不同的用户定义模块名称。
答案 1 :(得分:-1)