在python类中设置变量的正确方法
在类中使用变量的正确方法是什么 1-将它们设置为类属性,从类本身获取并访问它们:在python类中设置变量的正确方法,python,class,variables,standards,Python,Class,Variables,Standards,在类中使用变量的正确方法是什么 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.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()
一般来说,第一种方法是“真正面向对象”的方法,与第二种和第三种方法相比更受欢迎
如果希望buildLayers函数能够偶尔更改拓扑,请为其指定一个参数。默认值为无的拓扑
只要你不超过那个参数。在调用buildLayers时,它将使用this.topology。如果您传递它,它将使用您传递的,并且(如果您愿意)将this.topology更改为它
顺便说一句,虽然一开始就坚持这样的规则是明智的,但编程中并没有真正的教条。随着经验的增长,你会发现每一条规则都有许多完全正常的例外
这就是编程的乐趣,你永远不会停止从经验中学习。一般来说,第一种方法是“真正面向对象”的方法,与第二种和第三种方法相比更受欢迎 如果希望buildLayers函数能够偶尔更改拓扑,请为其指定一个参数。默认值为无的拓扑 只要你不超过那个参数。在调用buildLayers时,它将使用this.topology。如果您传递它,它将使用您传递的,并且(如果您愿意)将this.topology更改为它 顺便说一句,虽然一开始就坚持这样的规则是明智的,但编程中并没有真正的教条。随着经验的增长,你会发现每一条规则都有许多完全正常的例外
这就是编程的乐趣,你永远不会停止从经验中学习。第一个是正确的,推荐使用。因为这将取决于对象。第一个是正确的,建议使用。因为这将依赖于对象