You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用stddraw绘制图片报错AttributeError:'str'对象无width属性

问题原因与解决方法

原因

你传入的sys.argv[1]是字符串类型的文件路径,但stddraw.picture()方法要求传入的是Picture类的实例对象,而非原始字符串。该方法内部会尝试访问传入对象的width属性,字符串没有这个属性,因此抛出AttributeError。

解决方法

需要先通过文件路径创建Picture对象,再将对象传入stddraw.picture()。具体修改步骤如下:

  • 导入Picture类(根据你使用的库,通常是from picture import Picture)
  • 将字符串路径转换为Picture实例对象

修改后的完整代码:

import sys
import stdio
import stddraw
from picture import Picture

def main():
    if len(sys.argv) <= 1:
        stdio.writeln("ERROR: Too few Arguments")
    else:
        pic = Picture(sys.argv[1])
        stddraw.picture(pic)
        stddraw.show()

if __name__ == "__main__":
    main()

内容的提问来源于stack exchange,提问作者Albert van Zyl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:57:32