gpt4 book ai didi

python - 在它自己的方法中更改类的属性是不好的做法吗?

转载 作者:行者123 更新时间:2023-12-02 02:28:15 24 4
gpt4 key购买 nike

嘿,只是一些寻求建议的初学者。

class Board():

def __init__(self):
self.x = 0
self.y = 0

def SelectSquare(self,direction):
#based on some value from direction
self.x += 1
#or
self.y += 1

#return square at self.x and self.y

鉴于上面的代码,像这样创建将在对象内部更改的属性是不好的做法吗?

最佳答案

完全没问题。它符合面向对象编程范式,即 ( Wikipedia ):

A feature of objects is that an object's own procedures can access and often modify the data fields of itself

只有两点:

  • 使用 snake_case 作为您的方法名称,而不是 PascalCase

  • 如果一个方法改变了属性,那么最好不要让它返回某些东西。当编码人员在知道返回值的情况下调用此方法时,他们可能会惊讶于还有另一个副作用。

    决定函数是否应该返回一些东西——在这种情况下最好不要改变实例——否则返回一些东西,在这种情况下它改变实例是完全没问题的。这条规则当然也有异常(exception)。这里重要的是调用者不应该对“副作用”感到惊讶。

关于python - 在它自己的方法中更改类的属性是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65375015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com