用python中的物件導向方法來組裝一台電腦

2021-08-29 10:08:57 字數 1867 閱讀 2175

#cpu/ram/disk

class cpu(object):

def __init__(self,brand,core,inte***ce):

self.brand=brand

self.core=core

self.inte***ce=inte***ce

class ram(object):

def __init__(self,brand,size):

self.brand=brand

self.size=size

class disk(object):

def __init__(self,brand,size):

self.brand=brand

self.size=size

class computer(object):

def __init__(self,cpu_inte***ce,ram_count,disk_count):

self.cpu_inte***ce=cpu_inte***ce

self.ram_count=ram_count

self.disk_count=disk_count

self.__cpu=none

self.__rams=

self.__disks=

def add_cpu(self,cpu):

if cpu.inte***ce==self.cpu_inte***ce:

self.__cpu=cpu

else:

print("cpu型號不對,不能安裝電腦")

def add_ram(self,ram):

if len(self.__rams)==self.ram_count:

print("記憶體條已經沒有位置進行安裝了")

else:

def add_disk(self,disk):

if len(self.__disks)==self.disk_count:

print("硬碟已經沒有位置安裝了")

else:

def run(self):

if not self.__cpu:

print("沒有cpu,電腦無法執行")

return

elif len(self.__rams)==0 or len(self.__rams)>self.ram_count:

print("記憶體條安裝失敗,電腦不能正常執行")

return

elif len(self.__disks)==0 or len(self.__disks)>self.disk_count:

print("硬碟安裝失敗,電腦不能正常執行")

return

else:

print("電腦配置成功,能正常執行")

def main():

#初始化一台電腦

computer=computer('123456',2,2)

cpu=cpu('intel','4','123456')

ram1=ram('jinshidun','4g')

ram2=ram('jinshidun','4g')

disk1=disk('jinshidun','256g')

disk2=disk('jinshidun','256g')

computer.add_cpu(cpu)

computer.add_ram(ram1)

computer.add_ram(ram2)

computer.add_disk(disk1)

computer.add_disk(disk2)

computer.run()

main()

Python物件導向 方法

方法名稱 樣式可被誰呼叫 可呼叫誰 用處類方法 方法的第乙個引數是類 類 例項 類變數修改類屬性 靜態方法 方法不需要任何固定的引數 類 例項 自身的變數 只能做內部的處理 類中函式 就是在類裡面寫了個函式 不可外部呼叫 自身的變數 內部私有化部分 例項方法 就是有self接收例項的這種方法 cla...

python物件導向 用函式實現物件導向原理

類的定義 乙個抽象的概念,儲存一些共有的屬性和特徵 物件 物件代表具體事物的特徵功能,是類的例項 物件導向程式設計 通過函式實現物件導向設計 defdog name,type,gender defjiao dog1 print 你看 s 狗再叫 dog1 name 函式的區域性作用域 defslee...

總結Python中物件導向的特殊方法

當你從萌新小白到有點程式設計概念的時候或許就會有疑問,為什麼print 就可以列印出東西,為什麼生成器就可以next 進行迭代,這些都是因為類本身實現了一些特殊方法,我們來總結一下 1.如果把乙個類的例項變成str,就需要實現特殊方法 str str 用於顯示給使用者repr 用於顯示給開發人員 2...