对于一个班级 User
你可以通过first_name或last_name来实例化一个用户,但不能两者都为空。如何为该用户定义一个类
class User:
def __init__(self, fn=None, ln=None):
self.fn = fn
self.ln = ln
def get_name(self):
name = self.fn + self.ln
if not name:
return 'either first name or last name should be present'
return name
剧照它让我们可以实例化用户,不需要名字或姓氏,有什么方法可以让用户的名字和姓氏都不需要。User
只有当名字或姓氏中的任何一个存在时,才会实例化对象。
你可以试试这个。
class User:
def __init__(self, fn='', ln=''):
if not fn and not ln:
raise ValueError("must provide at least one name")
self.fn = fn
self.ln = ln
@property
def name(self):
return self.fn + self.ln
你可以试试这个。
class Validations:
@staticmethod
def check_user_params(first_name, last_name):
if not first_name or not last_name:
raise ValueError("Must provide at least one name")
class User(Validations):
def __init__(self, first_name, last_name):
self.check_user_params(first_name, last_name)
self.first_name = first_name
self.last_name = last_name
def get_name(self):
return f"{self.first_name} {self.last_name}"
if __name__ == "__main__":
user_test= User("", "lastNameTest")