python - 我应该怎么做才能使 (name).move 成为 (name)?
问题描述
class Point:
def __init__(self, x=0, y=0):
self.__x = x
self.__y = y
def x(self, x):
self.__x = x
def y(self, y):
self.__y = y
def move(self, dx, dy):
self.__x += dx
self.__y += dy
return Point(self.__x, self.__y)
def __str__(self):
return "(%d, %d)" %(self.__x, self.__y)
def main() :
a = Point()
b = Point(1,5)
print("a =",a)
a.move(2,3)
b.move(4,3).move(-1,-2)
print("a =",a," B =",b)
main()
我想得到答案 a=(2, 3), b=(4, 6) 但是当我尝试调试时, b.move 只能工作一次。我想我应该得到 b.move =b 以便改变 b 本身,而不是 Point(self.__x, self.__y)。而不是写return Point(self.__x, self.__y),我应该写什么?
解决方案
我认为您必须以这种方式定义移动方法:
def move(self, dx, dy):
self.__x += dx
self.__y += dy
return self
推荐阅读
- python - ArcPy:如果 A 列中的值 = x,则在值 B 中创建新表选择列
- java - 如何构建一种方法来遍历 WebElements 并返回使用 Selenium 和 Java 显示的方法?
- regex - 搜索和替换插入字符
- python - 尝试从源代码安装包。我得到:ImportError: No module named requests 然而包已安装
- android - 如何在android的另一个活动中从getter中检索数据
- c# - 为什么 if 语句不运行?
- wpf - 将 UserControl 的内容绑定到该 UserControl 内的 Popup
- php - 带有外键的搜索栏
- node.js - 通过 GraphQL 访问 API - 使用 Promise.all 遍历多个页面
- python - 在 Docker 容器中安装和使用 Python 模块