magic-methods

    2熱度

    2回答

    考慮: class T: def __hash__(self): return 1234 t1 = T() t2 = T() my_set = { t1 } 我希望下面的打印True: print t2 in my_set 這不是應該打印True因爲t1和t2有相同的散列值。我如何使set的in運算符使用給定的散列函數?

    0熱度

    2回答

    我有類Count,需要3個參數,包括self,mystart和myend。它應該從mystart開始計算,直到使用神奇的方法__iter__,__next__和__reversed__我的終點(也是相反的)。我已經實施了所有三種魔術方法。但我仍然不確定這是否是實施下一個逆向方法的正確方法。是否有可能我可以調用內置函數,並在我的__next__和__reversed__方法中反轉,或者有任何pyth

    0熱度

    1回答

    我在寫一個模擬映射對象的類。它具有以下功能。 class MyClass(object): def __init__(self): self.vars = {} def __getitem__(self,key): return self.vars[key] def __missing__(self,key): return k

    0熱度

    1回答

    最近我正在閱讀關於Python中的魔術方法,這使得代碼更容易閱讀。我們可以定義我們自己的映射嗎?如果是這樣,是否有任何指示,這是多麼複雜?例如,+總是映射到__add__。我可以爲?定義一個映射嗎?在我的課堂上,這將會調用__is_valid__? c = Car() print(c?) # invokes __is_valid__ of Car to get the result

    0熱度

    3回答

    我創建了一個類,它是一個tuple包裝器,元組不支持項目突變。 我應該離開__setitem__和__delitem__的實現或實現像例如下面(因此屬於Refused Bequest代碼的氣味)?哪種方法更pythonic?在這種情況下,定製異常是否更好? def __setitem__(self, key, value): """ :raise: Always. :

    2熱度

    3回答

    我無法理解這個類的自我參照這個代碼是如何工作的: class Vector2D: def __init__(self, x, y): self.x = x self.y = y def __add__(self, other): return Vector2D(self.x + other.x, self.y + other.y) first

    0熱度

    1回答

    我有一個類,看起來像這樣: class MyClass { public __get($prop) { $method = 'get' . ucfirst($prop); if (method_exists($this, $metodo)) return $this->$metodo(); if (property_exist

    2熱度

    1回答

    我已經定義了一個類,我試圖讓它可以被哈希化。此外,還有一個枚舉,它使用此類的對象作爲其枚舉成員的值。 from enum import Enum class Dummy(object): def __init__(self, name, property_): self.name = name # can only be a string self.p

    0熱度

    1回答

    我需要知道在PHP類中調用了哪個方法,並且在可能的情況下在同一個類中處理它。 例 class Pages { public function firstPage() { return 'First Page'; } public function secondPage() { return 'Second Page';

    0熱度

    1回答

    今天,我面臨一個奇怪的問題,我的發展之一。我用一個非常簡單的例子重現了它。看看這2個虛擬類(非Django的模型子類): class DummyClassA(object): def __init__(self, name): self.name = name def __repr__(self): return 'Dummy1 object call