使用变量作为模块的属性?

时间:2013-01-29 04:10:46

标签: python

假设我有两个变量:“choice”= ii7,“scale”= C.

此库具有通过运行以下任意特定音乐和弦来识别音符的功能:

  

chords.ii7(刻度)

当scale = C时,它会以C的比例列出ii7和弦的音符。

如果我不得不在代码本身中使用变量“choice”来代替包含ii7,我该怎么办呢?如果我知道要搜索什么,搜索肯定会容易得多,但我是一个初学者。这只是为了完成这个特定程序的其余部分,并学习新的东西。如果我说错了标题,我会道歉。提前谢谢!

1 个答案:

答案 0 :(得分:1)

使用getattr

getattr(chords, choice)(scale)

这是假设choice = 'ii7'

getattr基本上有两个参数 - 第一个是对象,第二个是字符串。它搜索与字符串同名的属性,并返回该属性。在这种情况下,getattr(chords, choice)会返回chords.ii7,然后您必须致电。