Python程序的初始化
我有一个Python程序,其中包含了一堆代码,我基本上导入了一些模块,初始化了一些变量并调用了一些函数。这里是它的一部分:Python程序的初始化
import numpy as np
import scipy as sp
import scipy.optimize as opt
import scipy.constants as const
import random
import time
if os.name == 'nt': os.system('cls')
if os.name == 'posix': os.system('clear')
rows, columns = os.popen('stty size', 'r').read().split()
Inclination = math.radians(INCLINATION)
Period = PERIOD*const.day
有没有一种方法,我可以把所有这一切都为一次单独的模块,只是打电话了吗?我试图把所有这些都放到一个外部程序中,然后调用它,但是据我所知,一切都完成了,但只在本地,而不是在主代码上。
这个想法应该能够在多个程序中使用这个“初始化模块”。
您是否尝试将所有这些都放到其他.py文件中,然后只是from x import *
?然后你应该拥有所有这些模块和常量,不管你从哪个文件中调用。
编辑:如果你担心多次执行所有这些,不要这样做。在导入时,Python会检查一个模块是否已经加载,然后再次加载该模块。例如说我们有这些文件:
fileA.py =>从初始导入*
fileB.py =>进口初始化
fileC.py =>进口的fileA,FILEB
当您运行fileC。 py,initializer.py中的代码只运行一次,即使fileA和fileB都成功加载它,尽管它们以不同的方式执行。
嗨戴夫,不,我刚刚做了一个'import myInitializationModule',认为它会是一样的。做到了这一点,并像魅力一样工作,谢谢! :) – jorgehumberto 2013-04-05 17:29:26
你不需要任何特殊的机制。当你导入这个模块时,python会抛出它并且所有的值都被初始化,你可以使用它。只需导入它,这就是全部。
我认为他试图避免进口/初始化的冗余。至少这是我得到的出*的想法是能够在多个程序也使用这种“初始化模块” * – jedwards 2013-04-05 17:17:18
@ pejot:我想一个简单的'进口x',没有工作,不得不做'从x导入*'。 – jorgehumberto 2013-04-05 17:35:38
从x导入* – speedingdeer 2013-04-05 17:36:15
'从myInitializationModule进口*'应该工作 – jedwards 2013-04-05 17:15:11
注意,在一般情况下,屏蔽你使用的是什么样的是将会使你的代码更加努力的工作。 – 2013-04-05 17:15:44
@Lattyware:这是一个好点 - 100%同意。 – jedwards 2013-04-05 17:16:08