说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)有一个名为 GirlFriend 的类,设计一个类方法,通过这个类方法允许只能实例化一次,即实现单例模式。要求:
Python 代码如下
class GirlFriend:
_instance = None
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def get_instance(cls, name, age):
if cls._instance is None:
cls._instance = cls(name, age)
return cls._instance
def __repr__(self):
return f'<Girlfriend: {self.name}, Age: {self.age}>'
实例化示例:
# 示例用法
gf1 = GirlFriend.get_instance('Alice', 25)
print(gf1) # 输出: <Girlfriend: Alice, Age: 25>
gf2 = GirlFriend.get_instance('Lily', 26)
# 因为已经有一个对象了,所以返回了第一个对象的属性
print(gf2) # 输出: <Girlfriend: Alice, Age: 25>
print(gf1 is gf2) # 输出 True
在这个例子中,GirlFriend 类定义了一个类方法get_instance(),用于获取类的实例。在该方法中,首先检查类变量_instance
是否为None,如果是,则创建一个新的实例并将其赋值给_instance
;如果不是,则直接返回之前创建的实例。这样就保证了只能创建一个对象。
查看相关链接中的知识。
(完)
更新时间:2024-08-16 22:55:14 标签:python 习题 类 单例 类方法