![](/img/trans.png)
[英]How can I check if a string is only letters in python using 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.