這裏有更多的上下文,在python中,你怎麼能夠創建這個效果?是否有可能在python中調用帶有可變函數的模塊?
import random
variable = 'randint'
random.[variable](1,3)
有什麼辦法可以爲此效果編寫代碼嗎?我在{if}塊的加載之外沒有發現任何東西。
謝謝!
這裏有更多的上下文,在python中,你怎麼能夠創建這個效果?是否有可能在python中調用帶有可變函數的模塊?
import random
variable = 'randint'
random.[variable](1,3)
有什麼辦法可以爲此效果編寫代碼嗎?我在{if}塊的加載之外沒有發現任何東西。
謝謝!
可以使用getattr
內置:
>>> import random
>>> variable = 'randint'
>>> getattr(random, variable)(1, 3)
3
>>>
從docs:
GETATTR(對象名稱[,默認值])
返回的命名值對象的屬性。名稱必須是字符串。如果 字符串是對象屬性之一的名稱,則 結果是該屬性的值。例如,getattr(x, 'foobar')等同於x.foobar。如果指定的屬性不存在 ,則返回默認值(如果提供),否則引發AttributeError 。
只是用getattr
的一種替代方案:
In [141]: random.__dict__['randint'](1,3)
Out[141]: 3
謝謝,這對我正在處理的其他內容也可能有用。 – user3361459
謝謝,太清除了我的getattr函數的知識。 – user3361459