[英]List Comprehension Function Pointer Python
我有一個定義屬性(self.b)的方法(dosomething)。 下面的虛擬代碼:
class foo:
def __init__(self):
self.a = 1
def dosomething(self, i):
self.b = 2 * self.a + i
return self.b ** 2
testobj = foo()
屬性 a 可以改變 - 因此在給定 a 的當前值的情況下調用 dosomething 來確定 b。
我想寫一個像下面這樣的列表理解。 除了,我需要調用 dosomething 來改變 b 。 下面的虛擬代碼只會重復 self.b 的當前值 20 次。
[testobj.b for i in range(20)] # pass i to dosomething then store self.b
快速的方法是只返回 self.b 但是,return 語句專注於另一個更復雜的值。 如果我可以返回 self.b,那么以下語句將起作用:
[testobj.dosomething(i) for i in range(20)]
屬性 b 只是我想要訪問的中間值。 是否有針對這種情況的單行列表理解? 我正在考慮在返回 self.b 的方法中定義一個 function 但是,我不確定如何才能正確訪問它。 所以像 foo().dosomething(1).getb() 這樣的東西不會起作用,因為 dosomething(1) 評估為一個數字。
class foo:
def __init__(self):
self.a = 1
def dosomething(self, i):
self.b = 2 * self.a + i
def getb():
return self.b
return self.b ** 2
我想我還應該補充一點,我不想返回不同值的數據結構。 它會影響我在其他地方的大部分代碼。
對於列表推導來說,這不是一個好的用例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.