Каков правильный способ работы с переменными внутри класса?Правильный способ установки переменных в классе python
1- установки их в качестве атрибутов класса, где мы получаем их и доступ к ним из самого класса:
class NeuralNetwork(object):
def __init__(self, topology):
self.topology = topology
self.buildLayers()
def buildLayers(self):
for layer in self.topology:
#do thing
2- пропуская их через методы, которые нам нужны их без назначения в классе, если они не очень полезные переменные :
class NeuralNetwork(object):
def __init__(self, topology):
self.buildLayers(topology)
def buildLayers(self, topology):
for layer in topology:
#do thing
3- смесь из вышеупомянутых двух:
class NeuralNetwork(object):
def __init__(self, topology):
self.topology = topology
self.buildLayers(self.topology) # or self.buildLayers(topology) ?
def buildLayers(self, topology):
for layer in topology:
#do thing
Я думаю, что первый из них является правильным, но не позволяют повторно использовать функцию для различных целей без присвоения нового значения переменной, что будет выглядеть как эти:
self.topology = x
self.buildLayers()
Что выглядит странно и вы не понимаете, что изменение self.topology
влияет на вызов self.buildLayers()