簡體   English   中英

列表理解 Function 指針 Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM