簡體   English   中英

如何檢查類屬性的 setter 中的名稱是否為 isalpha()?

[英]How can I check if the name isalpha() in the setter of a class property?

誰能幫我解決這個要求? 我一直在嘗試修復它,但沒有成功。 如果有人可以幫助我,我將不勝感激,謝謝。

name : property - 返回大寫的名稱,setter 檢查名稱 isalpha(),如果為 true,則將名稱存儲在對象中,否則存儲 'Unknown'

eid : 屬性 - 返回 eid 零,最多填充 4 個空格,如果長度為零,setter 將分配 '9999',否則存儲 eid。

這是我的代碼。

class Employee:

    def __init__(self, name, eid):
        self.name = name
        self.eid = eid

    def set_name(self, name):
        if name.isalpha():
            self.__name = name
        else:
            self.__name = 'Unknown'

    def set_eid(self, eid):
        if self.eid.isalpha():
            self.eid = eid
        else:
            self.eid = "9999"

    def get_name(self):
        return self.name

    def get_eid(self):
        return self.eid

    def __str__(self):
        return "%s: %s " % (self.eid, self.name)

def main():

    empName = input('Name')
    eid = input('Id')
    employeeInfo = Employee(empName, eid)

    print(employeeInfo.__str__())

main()

您需要使用property來定義 property 屬性。 如果您需要教程,請使用 Google(例如Programiz 上的這個),但這里有一個類似情況的快速示例。 如果name不是按字母順序排列的,則將其設置為None

class Person:

    def __init__(self, name):
        self.name = name

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, name):
        self._name = name if name.isalpha() else None

boxer = Person('Clay')
print(boxer.name)  # -> Clay
boxer.name = 'Ali'
print(boxer.name)  # -> Ali
boxer.name = ''
print(boxer.name)  # -> None

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM