【问题标题】:Accessing data in variables in class Python 3 [duplicate]在 Python 3 类中访问变量中的数据 [重复]
【发布时间】:2018-08-17 07:41:40
【问题描述】:

我正在使用 Python 3.5 并希望做这样的事情 我创建了一个类,其中包含变量 BitcoinMonero、'Etherum' 等,具有各种整数值,我希望提取它们

var1="Bitcoin"

value=classobj.var1 // there is a class which has a variable called Bitcoin and its value is 10 I wish to get its value using classobject.Bitcoin but the variable called var is Dynamic
print (value)

我如何达到同样的效果?

编辑

我知道可以使用 switch 语句,但我正在寻找其他方法

【问题讨论】:

  • classobj 是具有“比特币”等属性的类实例,而不是具有“比特币”等元素的字典,是否有原因?
  • 是的,我正在使用 Django,所以该类是一个模型

标签: python class object


【解决方案1】:

这几乎总是一个坏主意——你真的应该解释为什么你的设计看起来像这样,因为它可能是一个糟糕的设计。

但“几乎总是”不是“总是”,所以 Python 有办法做到这一点:

getattr(classobj, var)

【讨论】:

  • 应该var'var' 还是isinstance(var, str) True? (或者我不明白getattr 是如何工作的)
  • var 应该是变量var,而不是字符串'var'。但是,是的,isinstance(var, str) 应该是正确的——就像 OP 的问题一样。如果var的值为字符串'Bitcoin',那么getattr(classobj, var)getattr(classobj, 'Bitcoin')相同,即与classobj.Bitcoin相同。见the docs
猜你喜欢
  • 2015-06-14
  • 1970-01-01
  • 2019-12-05
  • 2018-07-06
  • 2018-06-16
  • 2021-07-23
  • 2013-02-18
  • 2018-04-23
  • 2020-12-11
相关资源
最近更新 更多