мой первый вопрос здесь:
Я искал в Интернете, а также прочитал несколько вопросов и ответов здесь и наконец выяснил, как написать синглтон-классы для моих кодов Python.
Я также прочитал документацию по Python о функции new () и некоторых других вещах, но все еще не понял, как и что означает все это new (cls, * args, *). * KW) вещи и т. д.
например, я написал такой тестовый код:
class Singleton(object):
def __new__(cls, *args, **kwargs):
if '_inst' not in vars(cls):
cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
return cls._instance
class printer(Singleton):
def __init__(self):
print "I am a new Object, and will remain until the end of time!"
if __name__ == '__main__':
printer()
и в результате получается текст «Я новый объект и останусь до конца времени!»
Но как это работает, я имею в виду, я не знаю, как сказать, например, я действительно смущен:
переменные (кл.): В строке if '_inst' not in vars(cls)
откуда выходят переменные (cls), я не заявлял об этом раньше!
Может кто-нибудь, пожалуйста, проясните это для меня в классе синглтонов, а также немного о последней строке
if __name__ == '__main__':
printer()