snake
has same name as its encolising class Snake
22
23 self.s = s
24 self.score = 0
25 self.snake = np.array([[15, 26], [15, 27], [15, 28], [15, 29]]) 26 self.direction = 0 # UP
27 self.place_fruit()
28 self.timer = 0
snake
has same name as its encolising class Snake
15])
16
17class Snake():
18 snake, fruit = None, None 19
20 def __init__(self, s, genome):
21 self.genome = genome
There is a class member with the same name (not considering the case difference) as its enclosing class.
This can cause confusion while reading the code later on keeping a track of what the field represents. It is strongly recommended to provide self-explanatory names so that someone who's reading the code doesn't have to spend time keeping a track of the variable/method names.
class Orange:
'''We mean, the fruit.'''
orange = "#FFA500"
# Other class implementations
def get_orange(self):
return abc
fruit = Orange()
render_to_frontend(fruit.orange) # Rendering a color, but one can get confused with the fruit
render_bg(fruit.get_orange) # Not clear that `get_orange` is returning a color
class Orange:
'''We mean, the fruit.'''
color = "#FFA500"
# Other class implementations
def get_color(self):
return abc
fruit = Orange()
render_to_frontend(fruit.color) # Evident that we are working with color
render_bg(fruit.get_color) # Evident that we are fetching the fruit's color