當我編碼的東西每一次,它是非常簡單,只是1文件沒有任何類(只是一堆的方法),我將通過命令行運行它。是否所有的代碼都應該在類中 - 只有主類被調用一次?
這當然是一個非常糟糕的做法,不能真正適用於任何更大的應用程序。
現在我終於想要構建更大的東西了,我對代碼的執行位置感到困惑。我們舉個例子吧。
我有一個人擁有物品的json文件,我還有另外一個json文件,每個物品的價格以及我已經擁有的數量(數量越多=提供的價格越低等)。
現在我想向這個人提出要約,說明哪些物品以及從他那裏購買了多少物品。
這是我設計的支出:
class Person(object):
...
def getInventory(self):
return self.inventory
class Inventory(object):
...
def getInventory(self):
return self.inventory
class Main(object):
person1 = Person(someArgs)
haveInventory = Inventory(someArgs)
def run(self):
... do calculations ...
main = Main()
main.run()
這是否有道理?
P.S .:我自己的庫存和人的庫存有不同的結構,因此庫存不能真正成爲人的子類。
這看起來像你試圖寫Java的Python編寫的。請不要那樣做。順便說一句,你不能有「1個文件沒有任何類(只是一堆的方法)」,因爲方法是屬於類,即他們是一個特殊的屬性的功能也許你的意思是「1個文件沒有任何類(只是一堆功能)」。 –
有幾乎從來沒有一個已經被稱爲「主」一類的情況,因爲你已經在你的文件中的'__main__'。最重要的是這讓很少的意義從OOP的角度有一個叫做'main'類,因爲什麼樣的對象它代表反正 –
@wobbily_col:這不是_particularly bad_ Python代碼,但它往往是多個v比需要的要多,例如不必使用getters和setter,而不用簡單的屬性訪問。當然,有時候類需要getter和setter,但是Python的描述符語法對調用者來說是透明的。 –