我是Python新手,现在才开始看到self
的用法,并想知道我是否正确使用它。我在下面有一些示例代码,想知道是否有人可以浏览一下,看看它是否是正确的用法。我不确定是否正确,因为我似乎需要使用self
很多,但也许这只是语言的风格。谢谢Python:我是否正确使用“self”?
代码
from tkinter import Canvas
class BouncyBall:
def __init__(self):
self.x = 0
self.y = 0
self.d = 15
self.color = 'blue'
self.speed = 2
self.move_left = False
self.move_right = False
def __init__(self, x, y, d, color):
self.x = x
self.y = y
self.d = d
self.color = color
self.speed = 2
self.move_left = False
self.move_right = False
#Accessor Methods
def get_x(self):
return self.x
def get_y(self):
return self.y
def get_diameter(self):
return self.d
def get_color(self):
return self.color
def get_speed(self):
return self.speed
def moving_right(self):
return self.move_right
def moving_left(self):
return self.move_left
#Mutator Methods
def set_x(self, x):
self.x = x
def set_y(self, y):
self.y = y
def set_diameter(self, d):
self.d = d
def set_color(self, color):
self.color = color
def set_speed(self, speed):
self.speed = speed
def set_move_right(self, move_right):
self.move_right = move_right
def set_move_left(self, move_left):
self.move_left = move_left
def draw_ball(self, canvas):
if isinstance(canvas, Canvas):
canvas.create_oval(self.x, self.y, self.x + self.d, self.y + self.d, fill=self.color)
else:
print("Improper Parameter Sent In")
你不应该用Python编写getter和setter。 –
@ juanpa.arrivillaga我还会如何获得/更改值?还是“自我”变量是公开的? – Ryan
我相信他们总是公开的。 – Scovetta