On 12/18/20 3:57 PM, Markus Armbruster wrote:
John Snow <js...@redhat.com> writes:
On 12/18/20 12:24 AM, Markus Armbruster wrote:
I could conceivably use source line information and stuff, to be
needlessly fancy about it. Nah. I just think singleton patterns are kind
of weird to implement in Python, so I didn't.
Stupidest singleton that could possibly work: in __init__,
self.singleton = ...
Yeah, you can make a class variable that has a builtin singleton, then
make the class method return that class variable.
Feels fancier than my laziness permits. I just put it back to using
one copy per definition.
Why have a class method around the attribute? Just use the stoopid
attribute already ;-P
Something has to initialize it:
```
class Blah:
magic = Blah()
def __init__(self):
pass
```
Won't work; Blah isn't defined yet. a classmethod works though:
```
class Blah:
magic = None
def __init__(self) -> None:
pass
@classmethod
def make(cls) -> 'Blah':
if cls.magic is None:
cls.magic = cls()
return cls.magic
```