如果要创建包,只需要有in it.py(简单地说,包是包含一个或多个模块的子目录,但我认为它可能比您现在需要的要复杂)。
如果只有一个文件夹包含MyModule.py和MyMainFile.py,则不需要init.py。
在MyMainFile.py中,您可以编写:import myModuleFile
然后使用myModuleFile.MyFunction()
包含模块名的原因是,可以在多个模块中重用同一个函数名,并且需要一种方法来说明程序正在使用哪个模块。
模块别名
如果您愿意,可以这样做:import myModuleFile as MyM
然后使用MyM.MyFunction()
在这里,您创建了MyM作为myModuleFile的别名,并创建了较少的类型。
这里躺着龙
你有时会看到其他形式的进口,这可能是危险的,特别是对初学者。from myModuleFile import MyFunction
如果这样做,您可以使用:MyFunction()
但是,如果在MyMainFile或任何其他使用过的库中使用了相同的函数名,则会出现问题,因为现在无法获得MyFunction名称的任何其他定义。这通常被称为污染名称空间,除非您确定它是安全的,否则应该真正避免。
最后一个表格我会完整地展示出来:from myModuleFile import *
虽然现在您可以访问myModuleFile中定义的每个函数,而不必在前面使用myModuleFile,但现在您还阻止mymain文件在任何库中使用与myModuleFile中定义的任何名称匹配的任何函数。
使用这种形式通常不被认为是一个好主意。
我希望这能有帮助。