好的,我有一个带有一些值的对象var:
home.php
我创建了一个很小的功能来使用这些值。在我的功能中,我有一条线:
mm = 0.001
screenDims = {}
screenDims['width'] = mm * 500
screenDims['height'] = mm * 300
screenDims['depth'] = mm * 10
当我执行此操作时,它会抛出一个错误,即我的对象变量def createScreen(screenDims,radialdist,theta):
#... some code that creates the object fine ...
bpy.ops.transform.resize(value=(screenDims.width, screenDims.height, screenDims.depth), ... )
没有screenDims
的值。
传递对象变量有什么秘密吗?变量是否超出范围,因为它在resize函数内部?或价值指定者?
我很困惑。
答案 0 :(得分:4)
要访问字典中的元素,您必须像编写它们一样阅读它们:
bpy.ops.transform.resize(value=(screenDims["width"], screenDims["height"], screenDims["depth"]), ... )
词典中的属性和键之间存在差异。使用括号表示法访问键(类似于数组中的元素,因此有类比)。
属性用于方法和值,其存在通常由对象的类型确定,而索引表示法用于容器中的元素。这有助于区分诸如screenDims.clear()
之类的方法,这些方法会删除字典中的所有元素与使用
screenDims["clear"] = ...
有关字典的更多信息,请in the official Python Tutorial, section Dictionaries。
答案 1 :(得分:2)
访问字典元素有两种方法: -
bpy.ops.transform.resize(值=(screenDims.get( “宽度”), screenDims.get(“height”),screenDims.get(“depth”)),...)
bpy.ops.transform.resize(值=(screenDims [ “宽度”], screenDims [“height”],screenDims [“depth”]),...)
使用get方法的好处是,如果字符中没有键,则可以提供一些默认值。 e.g .-
screenDims.get( “高度”, “DEFAULT_VALUE”)
。(点)运算符用于访问对象的属性,可以是值或方法。