我仍然是python的新手,但我需要与一些软件编程接口,这些软件是作为一堆python模块编写的(.py文件,以防我错误地将它们识别为“模块”。)这个程序有一些非常有用的和复杂的功能,我真的不可能破解(如果没有别的,因为每次我更新软件,我将不得不重新破解一切。)
我有一个如下所示的python脚本:
from software import thingfromsoftware
def mything(x,y,someboolean=True,etc)
var=thingfromsoftware(x,y)
#....code....
setattr(var, 'dimensions', somearraything)
return(var)
然后,如果我尝试:
result=mything(4,5)
然后result
正确包含首先通过thingfromsoftware
分配给它的所有属性的值,但result.dimensions
尚未分配(has no attribute "dimensions"
)
目标是以{@ 1}}以半连贯的方式存储由dimensions
计算和配置的每个result
的{{1}}。
真实代码(根据要求)
myfunctionthing
答案 0 :(得分:1)
你正在做
tube=io.read(str(name))
如果
TYPE!='bare'
所以在这种情况下你不会得到尺寸。这可能就是你遇到问题的原因吗?
另外,你刚试过吗
tube.dimensions = [tube.get_cell()[0, 0] / 2, tube.get_cell()[-1,-1]]
而不是setattr
?仅当要更改的属性的名称存储在变量名称中时才需要它。