Python 当我运行它时,它的功能与往常一样,但它似乎重复了一次。为什么会发生这种情况?

Python 当我运行它时,它的功能与往常一样,但它似乎重复了一次。为什么会发生这种情况?,python,Python,每当我运行此程序时,我都会得到一个“pycache”文件,该文件与此项目放在同一文件夹中,并且仅与此项目一起使用 def list_name(): 从项目名称导入名称分拣机作为 列表1=[] name=a() 如果名称为False: 返回错误 其他: 列表1.追加(名称) return list1[list1.index(name)] def名称_分拣机(): 从项目名称导入名称,数字为def1 a=输入(“全名:”) bool1=def1(a) 如果bool1为False: 返回错误 其他:

每当我运行此程序时,我都会得到一个“pycache”文件,该文件与此项目放在同一文件夹中,并且仅与此项目一起使用

def list_name():
从项目名称导入名称分拣机作为
列表1=[]
name=a()
如果名称为False:
返回错误
其他:
列表1.追加(名称)
return list1[list1.index(name)]
def名称_分拣机():
从项目名称导入名称,数字为def1
a=输入(“全名:”)
bool1=def1(a)
如果bool1为False:
返回错误
其他:
如果a.count(“”==1:
name_first=a.upper()[0]+a.lower()[1:a.find(“”)
name_last=a.upper()[a.find(“”+1]+a.lower()[a.find(“”+2:]
返回name\u first+“”+name\u last
其他:
返回错误
def名称\数字(a,x=0):
如果len(a)<3或len(a)>60或“”不在a中:
返回错误
其他:
对于a中的b:
x+=1
如果b.isdigit():
返回错误
elif x==len(a):
返回真值
从项目名称导入列表名称为列表1
a=列表1()
虽然a是假的:
打印(“无效”)
a=列表1()
印刷品(a)
另外,将所有内容放在一个文件中还是放在同一个文件夹中的单独文件中更好

它像往常一样工作,但似乎重复了一次。为什么会发生这种情况

是的,它运行两次—一次作为脚本,一次作为导入的模块(从自身导入)。每次遇到
import
语句时,Python都会查找所需的模块,如果尚未缓存一个模块,则会以一种特殊的方式加载该源文件,从而创建一个可以缓存的
module
对象。然而,当模块创建发生时,顶层的所有内容仍然会执行——这就是模块内容的确定方式

我得到了一个“pycache”文件,它和这个项目放在同一个文件夹中,并且是这个项目中唯一的文件

只有在这个项目中,你才可以使用
import
做一些你不应该做的奇怪的事情。
\uuuu pycache\uuuu
在内部用于提高程序后续运行时的模块加载时间-它是一种单独的缓存,即使重新启动Python也可以工作(因为它在磁盘上而不是内存中)

老实说,这是我第一次看到有人尝试这样的事情:

from project_name import list_name as list1
为了给同一个文件中的某个东西起一个新名字。通常情况下,您不应该尝试这样做-如果原始名称有问题,请修复它-但正确的方法非常简单:

list1 = list_name

如果这让您感到意外,您需要。

用您自己的话来说,您希望项目名称导入列表中的名称作为列表1做什么?