尽管我收到了两个关于我的问题的答案(对此我很感激),但它们并不能回答我的问题,或者我听不懂答案。 因此,这是我要执行的操作的详细说明: 我有两个模块a.py和b.py
#a.py
from zzzz import *
Bob.Name = 'Jack'
Bob.Age = 65
print(Bob.Name, Bob.Gender,Bob.Age)
# b.py
class Record(object):
Name = ''
Gender = ''
Age = ''
Line = 'Bob=Male=40' ### This what I would like to come from a.py
M = Line.split('=')
exec(M[0] + ' = ' + 'Record()')
exec(M[0] + '.' + 'Name' + ' = ' + "'" + M[0] + "'")
exec(M[0] + '.' + 'Gender' + ' = ' + "'" + M[1] + "'")
exec(M[0] + '.' + 'Age' + ' = ' + "'" + M[2] + "'")
print(Bob.Name, Bob.Gender, Bob.Age)
运行a.py时得到的结果是:
Bob Male 40
Jack Male 65
这很好,它的工作原理完全符合我的要求。
我唯一想做的就是在a.py中声明“线” ,然后将其在b.py中用作输入。
基本上,我想在另一个模块中创建一个对象,其中输入来自调用模块,并且将能够在调用模块中使用“点符号”。
答案 0 :(得分:0)
当前设置存在问题-在 b.py 中,您无需进行任何导入;因此您无法访问在其他位置定义的任何变量。
这是您可以尝试的一种方法。在 a.py :
class Dessert:
def __init__(self, kind):
self.kind = kind
def get_menu(self):
print('I am a:', self.kind)
在 b.py 中:
from a import Dessert
c = Dessert('cookie')
d = Dessert('donut')
c.get_menu()
d.get_menu()
答案 1 :(得分:0)
如果我对您的理解正确,则应该这样做:
#a.py
Line = 'Bob=Male=40'
# b.py
from a import Line # assuming a.py and b.py are in the same directory
...