【发布时间】:2014-08-01 20:16:40
【问题描述】:
我使用的是 Python 2.7。
以下面的代码为例:
class Apple:
def __init__(self, n):
self.n = n
def printVariable(self, s): # print variable named s
if hasattr(self, s):
print ...
我会用什么替换 ... 来打印 self.'s'。例如,如果我调用printVariable('n'),我会用什么代替... 来打印n?
当然,self.s 是行不通的,因为首先没有属性self.s,但更重要的是,那是打印一个不同的变量,而不是变量self.'s' 我想打印其名称所代表的变量通过传递给方法的字符串s。
对于这个问题中 self.s 和 self.'s' 和 s 的固有混淆性质,我深表歉意。
【问题讨论】:
-
值得注意的是,这通常表明存在更大的设计问题——这通常意味着您需要数据结构而不是属性。您实际上想通过此实现什么目标?
-
您应该始终尝试将数据保留在变量名称之外:nedbatchelder.com/blog/201112/…
标签: python string class self hasattr