在类方法的示例中,我们可以访问和修改类变量。下面是如何修改类方法以突出它可以访问和修改类变量的特性。
使用类方法访问和修改类变量
class ValidatorWithClassMethod:
class_variable = "Initial Value"
@classmethod
def is_valid_email(cls, email):
import re
pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
if re.match(pattern, email):
cls.class_variable = "Valid Email"
return True
else:
cls.class_variable = "Invalid Email"
return False
# 调用类方法进行验证
email = "test@example.com"
if ValidatorWithClassMethod.is_valid_email(email):
print(f"电子邮件地址 {email} 是有效的")
else:
print(f"电子邮件地址 {email} 是无效的")
# 打印类变量以显示其已被修改
print(f"类变量的值: {ValidatorWithClassMethod.class_variable}")
类方法:
- 可以访问和修改类变量
class_variable
。 - 在
is_valid_email
方法中,验证电子邮件格式后,根据结果修改 class_variable
的值。
总结:
- 类方法:适合需要访问或修改类变量的情况。
- 静态方法:适合不需要访问或修改类或实例状态的工具方法。