使用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
相关产品推荐
相关产品推荐

