在 python 2.x 中处理多个文件
Working with multiple files in python 2.x
我是 python 的新手,我正在编写一个又长又复杂的程序。
为了更好的管理,我想分离代码并在主 app.py 中调用变量和函数,我将经常 运行。
考虑到以下两个文件,如何将函数和变量正确导入app.py?
part1.py:
import pytz
import json
import pandas as pd
import numpy as np
actual_date = run (...)
def sqlquery():
query = """ ..."""
df = run_query(query)
return df
def calcuations():
df = sqlquery()
cat_age = df[.....]
mouse_name = df[.....]
....
if cat>=10:
color = "good"
else:
color = "bad"
return calcuations()
part2.py:
import pytz
import json
import pandas as pd
import numpy as np
actual_date = run (...)
def sqlquery2():
query = """ ..."""
df = run_query(query)
return df
def calcuations2():
df = sqlquery()
cow_age = df[.....]
horse_name = df[.....]
....
if cow_age>=10:
color = "good"
else:
color = "bad"
return calcuations2()
在 app.py 中,我想调用所有变量并创建一个 json:
我尝试使用 from part1 import *
但出现错误:NameError: name 'part1' is not defined
这是app.py
import pytz
import json
import pandas as pd
import numpy as np
from part1 import *
from part2 import *
def json():
data_out = {}
data['animal_age'] = {}
data['animal_age']['cat'] = cat_age
.....
data_out = json.dumps(data_out)
return data_out
将所有变量和函数导入 app.py 的正确方法是什么?
您根本没有导入名称 part1(只是其中的所有内容),但您可能仍在代码中的某处使用它,这就是您收到错误的原因。
查看您的 part1.py
和 part2.py
文件,它们非常相似并且具有相同的变量名...所以从 part2
导入所有内容可能是错误的覆盖您刚刚从 part1
导入的部分内容
正确的做法是替换
from part1 import *
from part2 import *
有
import part1
import part2
并相应地使用它们的变量,例如 part1.actual_date
或 part2.actual_date
这将解决您遇到的错误以及用多个相似对象(有时甚至重叠)填充命名空间的不良做法
此外,评论者对您的代码的评论是正确的,这里还有其他几个错误不允许您 运行 任何事情,例如一些缩进问题和 return
声明之外一个函数
我是 python 的新手,我正在编写一个又长又复杂的程序。 为了更好的管理,我想分离代码并在主 app.py 中调用变量和函数,我将经常 运行。
考虑到以下两个文件,如何将函数和变量正确导入app.py?
part1.py:
import pytz
import json
import pandas as pd
import numpy as np
actual_date = run (...)
def sqlquery():
query = """ ..."""
df = run_query(query)
return df
def calcuations():
df = sqlquery()
cat_age = df[.....]
mouse_name = df[.....]
....
if cat>=10:
color = "good"
else:
color = "bad"
return calcuations()
part2.py:
import pytz
import json
import pandas as pd
import numpy as np
actual_date = run (...)
def sqlquery2():
query = """ ..."""
df = run_query(query)
return df
def calcuations2():
df = sqlquery()
cow_age = df[.....]
horse_name = df[.....]
....
if cow_age>=10:
color = "good"
else:
color = "bad"
return calcuations2()
在 app.py 中,我想调用所有变量并创建一个 json:
我尝试使用 from part1 import *
但出现错误:NameError: name 'part1' is not defined
这是app.py
import pytz
import json
import pandas as pd
import numpy as np
from part1 import *
from part2 import *
def json():
data_out = {}
data['animal_age'] = {}
data['animal_age']['cat'] = cat_age
.....
data_out = json.dumps(data_out)
return data_out
将所有变量和函数导入 app.py 的正确方法是什么?
您根本没有导入名称 part1(只是其中的所有内容),但您可能仍在代码中的某处使用它,这就是您收到错误的原因。
查看您的 part1.py
和 part2.py
文件,它们非常相似并且具有相同的变量名...所以从 part2
导入所有内容可能是错误的覆盖您刚刚从 part1
正确的做法是替换
from part1 import *
from part2 import *
有
import part1
import part2
并相应地使用它们的变量,例如 part1.actual_date
或 part2.actual_date
这将解决您遇到的错误以及用多个相似对象(有时甚至重叠)填充命名空间的不良做法
此外,评论者对您的代码的评论是正确的,这里还有其他几个错误不允许您 运行 任何事情,例如一些缩进问题和 return
声明之外一个函数