Я видел в python 3.8 интересную практику кодирования
class SomeClass(object): def someMethod(self, in1): someVariable = 2*in1 # random operations result = log(someVariables) # random operations # https://github.com/autonomousvision/differentiable_volumetric_rendering/blob/master/im2mesh/dvr/models/__init__.py#L182 return result myClass = SomeClass() # reference a variable inside the function as an attribute # https://github.com/autonomousvision/differentiable_volumetric_rendering/blob/master/im2mesh/dvr/models/__init__.py#L75 myClass.someMethod(4).someVariable
Какова мотивация использования такой ссылки для получения someVariable вместо возврата ее в качестве одного из выходных данных или установки ее в явном виде в качестве атрибута класса self.someVariable = someVariable.
someVariable
self.someVariable = someVariable
Если для этого есть мотив git, можно ли сделать то же самое для многих переменных в функции? Другими словами, получите myClass.someMethod(4).someVariable1, myClass.someMethod(4).someVariable2 et c без повторения вычисления.
myClass.someMethod(4).someVariable1
myClass.someMethod(4).someVariable2
Комментарии говорят, что образец не работает. Здесь я размещаю ссылку на хранилище кода в блоке выше, а также здесь.
определение класса
вызов этого метода