在PyCharm控制台调用str()获Point对象而非坐标字符串的问题求助
问题:调用str(Point对象)返回默认对象描述而非坐标字符串
你遇到的问题核心在于geom2d.point.Point类没有实现__str__或__repr__特殊方法。Python中,如果类没有自定义这两个方法,调用str()时会返回默认的对象身份描述(就是你看到的<geom2d.point.Point object at 0x...>),而书中示例里的Point类已经自定义了这两个方法之一,所以能输出坐标格式的字符串。
解决办法
- 检查/修改Point类的实现
如果是你自己实现的geom2d.point.Point类,添加__str__方法即可:
class Point: def __init__(self, x, y): self.x = x self.y = y def __str__(self): return f'({self.x}, {self.y})' # 可选:加上__repr__,让交互式控制台直接打印对象时也显示坐标 def __repr__(self): return self.__str__()
如果是使用第三方库的geom2d,确认是否和书中配套版本一致——可能你用的版本没有实现这个字符串转换方法。
- 手动格式化输出
如果无法修改Point类代码,调用时手动提取坐标并格式化:
result = rot_origin.apply_to_point(point) print(f'({result.x}, {result.y})') # 或者转成字符串 str_result = f'({result.x}, {result.y})'
内容的提问来源于stack exchange,提问作者Ruslan Mamedov
相关产品推荐
相关产品推荐

