Rya*_*yan 0 python syntax self
我是Python的新手,我现在才开始看到它的用途,self
并想知道我是否正确使用它.我在下面有一些示例代码,并想知道是否有人可以浏览并查看它是否正确使用.我不确定它是否正确,因为我似乎需要使用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")
Run Code Online (Sandbox Code Playgroud)
你self
正确使用.与其他语言(如this
隐含参数的C++)相比,它确实在Python中出现了很多.
但是,在Python中,正如您所做的那样,为所有内容编写get()
和set()
方法并不常见.您可以通过删除这些代码来减少代码 - 并删除过程中的大量代码self
.