Access to class attributes by using a variable in Python?
本问题已经有最佳答案,请猛点这里访问。
在PHP中,我可以访问如下类属性:
1 2 3 4 5 6 7 | <?php // very simple :) class TestClass {} $tc = new TestClass{}; $attribute = 'foo'; $tc->{$attribute} = 'bar'; echo $tc->foo // should echo 'bar' |
我怎样才能在python中做到这一点?
1 2 3 4 5 6 | class TestClass() tc = TestClass attribute = 'foo' # here comes the magic? print tc.foo # should echo 'bar' |
号
这个问题已经问了好几次了。可以使用getattr按名称获取属性:
1 | print getattr(tc, 'foo') |
这也适用于以下方法:
1 | getattr(tc, 'methodname')(arg1, arg2) |
号
要按名称设置属性,请使用setattr
1 | setattr(tc, 'foo', 'bar') |
要检查属性是否存在,请使用hasattr
1 | hasattr(tc, 'foo') |
。
1 2 3 4 5 6 | class TestClass(object) pass tc = TestClass() setattr(tc,"foo","bar") print tc.foo |