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 

有没有一种方法,我可以把所有这一切都为一次单独的模块,只是打电话了吗?我试图把所有这些都放到一个外部程序中,然后调用它,但是据我所知,一切都完成了,但只在本地,而不是在主代码上。

这个想法应该能够在多个程序中使用这个“初始化模块”。

+1

'从myInitializationModule进口*'应该工作 – jedwards 2013-04-05 17:15:11

+2

注意,在一般情况下,屏蔽你使用的是什么样的是将会使你的代码更加努力的工作。 – 2013-04-05 17:15:44

+0

@Lattyware:这是一个好点 - 100%同意。 – jedwards 2013-04-05 17:16:08

您是否尝试将所有这些都放到其他.py文件中,然后只是from x import *?然后你应该拥有所有这些模块和常量,不管你从哪个文件中调用。

编辑:如果你担心多次执行所有这些,不要这样做。在导入时,Python会检查一个模块是否已经加载,然后再次加载该模块。例如说我们有这些文件:

fileA.py =>从初始导入*
fileB.py =>进口初始化
fileC.py =>进口的fileA,FILEB

当您运行fileC。 py,initializer.py中的代码只运行一次,即使fileA和fileB都成功加载它,尽管它们以不同的方式执行。

+0

嗨戴夫,不,我刚刚做了一个'import myInitializationModule',认为它会是一样的。做到了这一点,并像魅力一样工作,谢谢! :) – jorgehumberto 2013-04-05 17:29:26

你不需要任何特殊的机制。当你导入这个模块时,python会抛出它并且所有的值都被初始化,你可以使用它。只需导入它,这就是全部。

+3

我认为他试图避免进口/初始化的冗余。至少这是我得到的出*的想法是能够在多个程序也使用这种“初始化模块” * – jedwards 2013-04-05 17:17:18

+0

@ pejot:我想一个简单的'进口x',没有工作,不得不做'从x导入*'。 – jorgehumberto 2013-04-05 17:35:38

+0

从x导入* – speedingdeer 2013-04-05 17:36:15