python - 在 python 中,整个文件可以只是一个变量吗?

标签 python file variables

我看到一个 javascript 项目在他们自己的文件中定义了非常大的变量,其名称与变量相同,例如名为 marker 的大型数组位于名为 marker.js 的文件中。方便地,变量可以直接与任何导入一起使用,直接访问它,就好像它在同一个文件中一样。

现在我在 python 项目中有大变量,我想知道我是否可以做类似的事情,即将非常大的列表重构到它自己的文件中,或者这不可能/不是一个好主意?

谢谢

更新 我的“非常大的变量”基本上是我所能提供的最详细的地理信息:

location_map_br = {
    1: {
        'name': 'São Paulo'.decode('utf-8'),
        'lat': -23.55,
        'long': -46.64,
        'radius': 294200,
        },
    2: {
        'name': 'Rio De Janeiro',
        'lat': -22.90,
        'long': -43.21,
        'radius': 294200,
        },

...

代码没问题,它只需要结构化,以便大变量不影响应用程序逻辑。

最佳答案

我不是很确定你的问题,但这不就是吗modules是为了什么?


示例:我有一些邮政编码逻辑和一个包含实际邮政编码的大型 Python 数据结构:

zipproj/zipcodelogic.py
zipproj/zipcodes.py

zipcodes.py 看起来像

zipcodes = [
    ('10304', 'Richmond County, NY'),
    ... 
    # and over 42,000 more zipcodes
    # http://en.wikipedia.org/wiki/ZIP_code#Statistics
    ...
]

zipcodelogic.py 中,您可以简单地import zipcodes(列表的句柄将是 zipcodes.zipcodes)。

在其他情况下,人们也可能会研究对象序列化,例如通过pickle , shelvejson .

关于python - 在 python 中,整个文件可以只是一个变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202539/

相关文章:

python - 列包含列

c - 如何使用 fgets/read/fread 识别 double\n\n

c - switch 语句中声明的变量在不区分大小写的情况下如何工作?

c# - Java 或 Python 中的 Duplicate\K 功能?

java - 使用变量赋值查找字段/奇怪行为的实例

c - 读取失败,错误消息 "Invalid argument"

Windows 批量分配一个 var 到另一个 var

ruby - 如何在ruby中调用实例变量

python - 参数化 pytest - 也将参数传递给安装和拆卸

file - Micropython网络服务器: Serve large textfiles without memory allocation failure