我想為使用的 API 提供動態引數。為此,我正在尋找一種簡單的方法來實作以下目標:
def __init__(self):
self.search_param_list = [from, to]
self.from = A
self.to = B
def search_params2(self):
parameters = {parameter: self.parameter for parameter in self.search_param_list}
return parameters
輸出預計如下所示:
parameters ={"from": A, "to": B}
如果需要,我這樣做是為了更改 init 中的引數,但如果不是必要的,我不必這樣做。
uj5u.com熱心網友回復:
from是非法的變數名。使用from_或其他東西。
將要搜索的名稱保存為字串。
通過字串名稱訪問實體屬性getattr。
class A:
def __init__(self):
self.x = 1
self.from_ = 2
self.to = 3
self.search_param_list = ['from_', 'to']
def search_params2(self):
return {p: getattr(self, p) for p in self.search_param_list}
演示:
>>> A().search_params2()
{'from_': 2, 'to': 3}
當然,您可以立即使用vars.
>>> vars(A())
{'x': 1, 'from_': 2, 'to': 3, 'search_param_list': ['from_', 'to']}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/435614.html
下一篇:jsvue如何添加更多變數
