我不明白如何從 python 類中獲取欄位實體的值。我在 get_person 方法中添加了我需要此代碼執行的操作。輸出應為 3 或 None。
class Digit:
def __init__(self, digit)
self.digit = digit
def get_person(self):
# I want to get the value for the field 'Person' from digit, if 'Person' exists
# else None
inst1 = Digit('Team=Hawkeye|Weapon=Bow|Person=3')
inst2 = Digit('Comics')
print(inst1.get_person(),
inst2.get_person())
uj5u.com熱心網友回復:
鑒于您的兩個示例,您的 Digits 類用例可能過于廣泛。通常,最好讓一個類在每個實體中存盤相同型別的資料,例如Hawkeye, Bow, 3、 和Thor, Hammer, 3。添加Comics到 inst2 向我表明有一種更好的方法來拆分您的類,但是如果沒有更多關于您的代碼實際上在做什么的背景關系,就很難說。
正如評論中指出的那樣,使用字串來存盤這樣的資訊非常混亂,并且難以管理。更好的方法是使用字典,一種存盤名稱和值的方法,例如您的團隊、武器和人員值:
class Digit:
def __init__(self, data):
self.data = data
def get_person(self):
if "Person" in self.data.keys():
return self.data["Person"]
else:
return None
inst1 = Digit({"Team":"Hawkeye", "Weapon":"Bow", "Person":3})
inst2 = Digit({"Comics":None})
print(inst1.get_person(),
inst2.get_person())
一個很好的字典入門指南可以在這里找到
uj5u.com熱心網友回復:
根據您的示例,您沒有理由不應該簡單地使用dict:
inst1 = dict(Team='Hawkeye', Weapon='Bow', Person=3)
inst2 = dict()
print(inst1.get("Person"), inst2.get("Person")) # prints '3 None'
uj5u.com熱心網友回復:
class Digit: # here you define your class
def __init__(self, digit):
self.digit = digit # you initialize (set) your attribute.
def get_person(self):
return self.digit # you return the attribute
如果該物件不存在,則無論如何您都無法呼叫其成員 get_person。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/399451.html
上一篇:如何將函式附加到類的實體?
下一篇:從同一個父類的另一個類訪問物件
