2010-11-17 20 views
0

我认为这几乎是一个非常基本的问题,但我正在努力。我有2个python文件,一个用于我网站上的主要内容,另一个用于管理区域。你可以看到这两个文件在这里:python中是否有类语句的包含文件?

https://gist.github.com/670034

在这两个文件我定义类,并在顶部导入必要的模块,如果我在一个文件中改变我需要记住的其他文件来改变。有没有办法在一个文件中定义所有这些文件,然后将这两个文件包含在内?

我确定有这样一个简单的方法,但我似乎无法找到如何去做。

感谢

汤姆

回答

2

只需创建一个文件,如myimports.py

import cgi 
import os 

from google.appengine.ext.webapp import template 
from google.appengine.api import users 
from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 
from google.appengine.ext import db 
from google.appengine.api import memcache 
from google.appengine.api import urlfetch 
from google.appengine.datastore import entity_pb 

然后,你可以这样做:

from myimports import * 

注意的是,虽然它可以节约空间,它不使其更具可读性,你需要检查的其他文件只是看你什么进口。

+0

谢谢戳!这正是我正在寻找的东西,我觉得它很简单,但很难得到钉牢。谢谢。 – tomcritchlow 2010-11-17 09:06:36

+0

很高兴能够提供帮助。顺便说一句。点击答案旁边的勾号以接受它作为问题的答案并将问题标记为已解决。 – poke 2010-11-17 16:35:33

0

创建新的模块:

import some 

class A: 
    pass 

和进口模块中的两个文件:

import new_module 
0

定义在一个单独的文件中的类,import它在另外两个。

1

回应什么poke说,最好不要在集中的地方进行导入,因为最终可能会失去对名称空间中的内容的细粒度控制。我知道这并不能回答你的问题,但从长远来看,这可能会有所帮助。

+0

嗨拉兹,你能解释一下为什么不推荐这种方法吗?似乎毫不费力,就像将Google Analytics代码放入网站范围的包含文件中一样?我失去了什么控制权? – tomcritchlow 2010-11-17 09:07:22

+0

'不要使用导入*'听起来更容易记住。我这样解释:当你将手指指向它们时,你想知道对象来自哪里 – 2010-11-17 09:10:13

+0

好吧,如果你的项目中只有一些文件,那么可能是没有道理的,但是在一个更大的项目中它可以开始难以跟踪正在导入的内容,因此可能导致难以追查的错误。 – Raz 2010-11-17 09:12:02

相关问题