小编use*_*375的帖子

如何解析其类存在于不同命名空间(python)中的对象?

如果我有一个定义类的脚本:

script = """

class myClass:
    def __init__(self):
        self.name = 'apple'
        self.color = 'green'

"""
Run Code Online (Sandbox Code Playgroud)

然后在自己的命名空间dict中执行此脚本:

NS = {}
exec script in NS
Run Code Online (Sandbox Code Playgroud)

然后创建一个类的实例并将其pickle:

a = NS['myClass']()

import pickle

save = pickle.dumps(a)
Run Code Online (Sandbox Code Playgroud)

现在,如果我试图取消它:

load = pickle.loads(save)
Run Code Online (Sandbox Code Playgroud)

我收到了错误

AttributeError: 'module' object has no attribute 'myClass'
Run Code Online (Sandbox Code Playgroud)

我认为这不起作用,因为python不知道在哪里找到myClass以重建对象.但myClass确实存在于NS dict中.有没有办法告诉pickle在哪里找到它正在加载的对象的类?

python pickle

12
推荐指数
2
解决办法
4444
查看次数

如何解析python代码以识别全局变量的用途?

我正在使用python来解析python代码.说我正在解析的代码是:

def foo():
    global x, y
    x = 1
    y = 2
    print x + y
Run Code Online (Sandbox Code Playgroud)

我想在代码中找到全局x和y的所有用法.我有一个提前使用的全局变量列表,因此不需要从全局变量行中提取x和y.所以问题是:给定一些已知的全局变量列表在某些python代码中使用,例如['x','y']在这种情况下,如何解析代码以查找这些全局变量的用法?

python parsing

2
推荐指数
1
解决办法
858
查看次数

标签 统计

python ×2

parsing ×1

pickle ×1