我正在尝试实现Singleton类。这是我的代码:
<table border="1">
<tr>
<th>EMP_NAME</th>
<th>EMP_ADDRESS</th>
<th>EMP_AGE</th>
<th>EMP_GENDER</th>
</tr>
<tr>
<td>JOHN</td>
<td>STOCKON</td>
<td>32</td>
<td>MALE</td>
</tr>
<tr>
<td>BEA</td>
<td>GEORGIA</td>
<td>32</td>
<td>FEMALE</td>
</tr>
</table>
我这样测试:
class ImageUtils:
__instance = None
def __init__(self):
""" Virtually private constructor. """
if ImageUtils.__instance != None:
raise Exception("This class is a singleton!")
else:
ImageUtils.__instance = self
@staticmethod
def getInstance():
"""Static access method"""
if ImageUtils.getInstance() == None:
ImageUtils()
return ImageUtils.__instance
我收到此错误:
s = ImageUtils() print(s) s = ImageUtils.getInstance() print(s) s = ImageUtils.getInstance() print(s)
现在,当我在此处测试代码:Python Design Pattern Singletons时,它给了我打印出Singleton实例的内存位置三次的预期结果。
问题:当我复制并粘贴链接中给出的代码时,得到了预期的结果。但是,ImageUtils类的实现给了我RecursionError。这是为什么?非常感谢您的帮助。
答案 0 :(得分:0)
在def getInstance():
if ImageUtils.getInstance() == None
应该是
if ImageUtils.__instance == None