Convert String to Object name

2019-02-17 21:35发布

I needed help on this one. How do I convert a string into a variable/object/instance name, since I don't know how to categorize this.
Assuming my code is:

a = {}
b = {}

class Test:
    def getKeys(self, var):
        return var.keys() #where var refers to the dictionary and its a string initially

2条回答
萌系小妹纸
2楼-- · 2019-02-17 22:06

It's been forever since I've done anything with Python but I do remember having this problem once. I suggest you look into the eval() function.

查看更多
时光不老,我们不散
3楼-- · 2019-02-17 22:14

If I understand correctly, your variable var is a string that might be "a" or "b". You want to use that letter to pick the correct dictionary global variable to look in.

I suggest putting your dictionaries into another dictionary, with keys you can use to look it up by name:

my_dicts = {"a":a, "b":b}

class Test:
    def getkeys(self, dict_name):
        return my_dicts[dict_name].keys()

However, this may be simply an issue of design. Instead of sending a variable name to the getkeys method, why not simply send the dictionary itself and use your current code?

Instead of Test().getkeys("a"), call Test().getkeys(a) (no quotation marks).

查看更多
登录 后发表回答