python - 从另一个模块访问变量
问题描述
虽然我收到了两个关于我的问题的答案(对此我很感激),但他们没有回答我的问题,或者我无法理解答案。所以这里是我想要做的更详细的解释:我有两个模块 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 中声明“Line”,然后在 b.py 中将其用作输入。
基本上我想在另一个模块中创建一个对象,其中输入来自调用模块,并且能够在调用模块中使用“点表示法”。
解决方案
当前设置存在问题 - 在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()
推荐阅读
- javascript - 如何在 RMarkdown 的代码块中使用 JavaScript?
- json - 云形成模板中的允许模式
- java - java.lang.NoSuchMethodError 在带有 Spring Boot JPA 的 Hibernate Search 模块 5.9.0 中
- python - CapsNet 模型评估与 K-Fold 验证 - 如何获得最佳模型和评估
- java - Selenium 并行测试队列处理
- sql - 删除相同序列号的重复状态
- firebase - {“错误”:{“canonicalCode”:“INVALID_ARGUMENT”,谷歌云
- python - 创建可用性数据框
- firebase - Firebase Analytics 无法找到所有项目
- c# - linq通过分组选择最新记录的列列表时如何防止“对象引用未设置为对象的实例”?