所以我有一堆粒子,可以有兩種,比如“上”和“下”。我是 python 新手,但我知道這種隔離可以在類的幫助下完成。
假設我有一個清單:
T=np.linspace(0,1,1000)
我希望這個串列的每個元素都是兩個粒子之一,但我不確定是否應該創建兩個類,每個類都有一個“種類”,或者一個類有兩個“實體”,并為每個元素分配一個實體。
最后,我想做的是在串列 T 上隨機分配“向上”和“向下”的屬性。
uj5u.com熱心網友回復:
沒有足夠的資訊。在處理 1000 個專案時,您很可能不想要 2 個實體 - 每個專案可能應該由一個類的單獨實體表示。但這并不意味著擁有 2 個課程是一種方法。粒子是否相對相似,除了單一屬性的差異之外,它們具有相同的行為嗎?如果是這樣,我會選擇單個類、1000 個實體并將 up/down 屬性存盤在某個實體屬性中。
編輯:這就是我個人將如何針對當前有問題的要求來實作它:
class Particle:
def __init__(self, posInit, momInit, spin):
self.posInit = posInit
self.momInit = momInit
self.spin = spin
def momOfT(self, t):
return self.momInit*(math.cos(t)) self.posInit*(math.sin(t))
def posOfT(self, t):
return self.posInit*(math.cos(t))-self.momInit*(math.sin(t))
T = [Particle(posInit = i, momInit = 1-i, spin = random.choice(["up", "down"])) for i in np.linspace(0, 1, 1001)]
print([T[0].posOfT(i) for i in np.linspace(0, 3.1415*2, 1000)])
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/478791.html
上一篇:為什么OutlookVBA中的“退出”事件不運行傳遞的類模塊?
下一篇:通用C#存盤庫、服務和控制器設計
