python - 隐式访问当前 Process 范围内可用但在 Python 中的当前模块之外的变量
问题描述
我正在创建一个平台,用户可以在其中编写我的应用程序可以理解的基于键:值的配置。在这些配置中,我提供了编写和调用 python 片段的支持。如下所示:
def func(self, x):
import MyClass
return MyClass(x, self.attr1)
attr1 val1
attr2 func(self, x)
attr3 MyClass(x)
可以看出,任何值都可能依赖于配置中的某个其他值,为此在作用域中可以使用诸如self之类的对象。请注意attr2 v/s attr3,它们都创建了同一类但在不同范围内的对象。
- attr2评估一个 python 函数并将对self的引用传递给作用域。此函数还需要将所需信息从self传递给MyClass构造函数。
- attr3直接调用构造函数,但由于该对象是在 config 对象的范围内创建的,因此它的引用可作为MyClass对象的父对象,并且在内部它使用self.parent.attr1进行创建。
这最终会为我的应用程序创建类似的对象,即attr2==attr3。
从用户的角度来看,当MyClass需要来自self的许多属性时可能会很麻烦,他们需要手动添加所有这些。其次,最好为用户提供一种同质的方式来创建这种对象,无论是通过 config 还是 python 函数,因为它们都存在于相同的外部范围内。因此,我希望提供以下方式来定义attr2,它应该类似于上面的attr3工作:
def func(x):
import MyClass
return MyClass(x)
attr1 val1
attr2 func(x)
有什么方法可以隐式理解特定于应用程序的对象的上下文,这些对象将在客户端代码中创建?
解决方案
推荐阅读
- sql - SUM、Count 和 convert -“无法对包含聚合或子查询的表达式执行聚合函数”
- android - 我的 getFilter() 方法有错误吗?
- ios - 通过 Rest API 的 Apple Health Kit 数据
- sharepoint - 如何为 GroupUserAdded 事件创建远程事件接收器
- android - 如何更改我的搜索视图图标颜色?
- r - 如何在 R 中生成这样的日期
- html - html表格打印布局中的空格
- r - 将 HDFS 文件加载到 Hive 时面临问题
- mongodb - Prisma GraphQL 嵌套文档
- python - 如何在 Pycharm 中使用从 google colab 导出的模型