Если на этапе компиляции достаточно данных для создания - так можно.
Другой вариант сделать lazy-геттера, что-то типа
_payment_checker = None
def get_payment_checker():
global _payment_checker
if _payment_checker is None:
_payment_checker = PaymentChecker(<some constant args>)
return _payment_checker
или то же самое через статик метод класса
class PaymentChecker(object):
__instance = None
@classmethod
def get_checker(cls):
if cls.__instance is None:
cls.__instance = cls(<some constant args>)
return cls.__instance
второй вариант предпочтительней - развивать легче :)