0
我的要求是收集設備對象(具有容量,製造商,帶寬,成本等功能)。我需要能夠找到最大容量的設備。但是由於可能有多個設備具有相同或不同製造商的相同容量,因此我無法將容量用作密鑰。Python元組作爲鍵和對象作爲值
我以爲有元組的容量和模型沒有作爲關鍵,但我選擇的設備基於他們的能力,而不是他們的型號。
class device:
def __init__(self):
self.manufacturer = ""
self.purchasecost = ""
self.capacity = "" # TB
self.power = "" # KWH
self.bandwidth = "" # MBPS
self.fail_rate = ""
self.powered_on = "" # %
self.lIOPS = ""
self.device_type = ""
self.moveincost = "" # % of purchasecost
self.moveoutcost = "" # % of purchasecost
self.datacentercost = ""
self.servicelife = ""
self.model = ""
pass
def setparam(self, device_param):
self.manufacturer = device_param["manufacturer"]
self.purchasecost = device_param["purchasecost"]
self.capacity = device_param["capacity"] # TB
self.power = device_param["power"] # KWH
self.bandwidth = device_param["bandwidth"] # MBPS
self.fail_rate = device_param["fail_rate"]
self.powered_on = device_param["powered_on"] # %
self.lIOPS = device_param["IOPS"]
self.device_type = device_param["device_type"]
self.moveincost = device_param["moveincost"] # % of purchasecost
self.moveoutcost = device_param["moveoutcost"] # % of purchasecost
self.datacentercost = device_param["datacentercost"]
self.servicelife = device_param["servicelife"]
self.model = device_param["model"]
在另一個類中,我創建對象並使用它們。
def available_devices(self):
hdd1 = self.createdisk1()
hdd2 = self.createdisk2()
ssd1 = self.createSSD1()
self.availabledevices[hdd1.model]=hdd1
print ("Added HDD1 "+str(self.availabledevices[hdd1.model]))
self.availabledevices[hdd2.model]=hdd2
print ("Added HDD2 "+str(self.availabledevices[hdd2.model]))
self.availabledevices[ssd1.model]=ssd1
def get_highest_capacity_device(self):
sorted_capacities = sorted(self.availabledevices.iterkeys())
highest_capacity = sorted_capacities[len(sorted_capacities) -1]
highest_capacity_device = self.availabledevices[highest_capacity]
return highest_capacity_device
此代碼目前使用的容量爲關鍵,但它顯然當有與相同容量的多個設備不工作。我的問題是我應該作爲重點使用,這樣 - 我可以根據自己的能力 我的設備進行排序 - 我可以得到具有一定容量
爲什麼您需要一個唯一的排序鍵?這看起來像是一個設計缺陷。你爲什麼要分類呢?不是簡單的最大搜索足夠? – luk32
「這個代碼目前使用容量作爲關鍵,但當存在多個具有相同容量的設備時,它顯然不工作」 - 您確定嗎?排序應該工作得很好。 – user2357112
如果您正在討論字典鍵而不是排序鍵,爲什麼不把這個值列爲具有該容量的所有設備的列表? – user2357112