python分配問題 Python增加分配問題

2021-10-13 15:06:47 字數 573 閱讀 7742

對於運算子,python定義了乙個物件可以實現的三個「特殊」方法:

> __add__:新增兩個專案(運算子).當你做乙個b時,a的__add__方法用b作為引數來呼叫.

> __radd__:reflect add;對於b,b的__radd__方法作為乙個例項被呼叫.這僅在不知道如何做新增和兩個物件是不同型別時才使用.

> __iadd__:就地新增用於a = b,其中結果被分配回到左側變數.這是單獨提供的,因為可能以更有效的方式實施它.例如,如果a是列表,那麼a = b與a.extend(b)相同.但是,在c = a b的情況下,必須在擴充套件之前複製乙個副本,因為在這種情況下不要修改.請注意,如果您不實現__iadd__,則python將僅呼叫__add__.

因此,由於這些不同的操作是通過單獨的方法實現的,所以實現它們是可能的(但通常是不好的做法),所以它們完全不同,或者也許在這種情況下,只有稍微不同的東西.

其他人推斷你正在使用numpy並解釋其行為.但是,您詢問了底層實現.希望你現在可以看到為什麼有時候a = b與a = a b不一樣.順便說一下,也可以為其他操作實現類似的三重方法.有關所有支援的就地方法的列表,請參閱this page.

Python 貨物分配問題

我有一堆貨物,重量分別為 6,6,5,5,5,4,4,4,4,2,2,2,2,3,3,7,7,5,5,8,8,4,4,5我需要把這些貨物,裝入最大重量為 9 的箱子裡面 重量之和小於等於 9 的貨物可以裝到一 個箱子裡面 請問,我最少需要多少箱子,才能把這些貨物完全裝入進去?thing 6,6,5,...

python分配 Python分配解構

根據dis,他們都被編譯成相同的位元組碼 def f1 line a,b,c line.split def f2 line a,b,c line.split def f3 line a,b,c line.split import dis dis.dis f1 2 0 load fast 0 line...

python練習 學生班級分配問題

題目要求 四個班級,八個學生,隨機將八個學生平均分配到四個班級中,也就是每乙個班級有且只有兩個學生。import random classes students a b,c d e f g h index random.randint 0,3 classes index 0 flag 0while ...