我理解使用属性的主要目的之一是进行验证和格式化。例如,我有一个如下所示的User类。当设置名字和姓氏时,我希望它们以大写字母显示。如果我可以编写以下代码来实现相同的格式化结果,为什么我需要属性呢?
class User:
def __init__(self, firstname, lastname):
self.firstname = firstname
self.lastname = lastname
def __setattr__(self, attr, value):
if attr == 'firstname':
self.__dict__[attr] = value.capitalize()
elif attr == 'lastname':
self.__dict__[attr] = value.capitalize()
x.a = b and x.a != b
,那么这实际上不是一个很好的编程实践。 - Andrey