在Python中访问像JavaScript对象一样使用的字典

时间:2016-08-31 09:02:08

标签: python dictionary

好的,我有一个带有一些值的对象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函数内部?或价值指定者?

我很困惑。

2 个答案:

答案 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)

访问字典元素有两种方法: -

  1. 使用字典的get()方法 -
  2.   

    bpy.ops.transform.resize(值=(screenDims.get( “宽度”),   screenDims.get(“height”),screenDims.get(“depth”)),...)

    1. 您可以按照编写创建字典的方式阅读它们 -
    2.   

      bpy.ops.transform.resize(值=(screenDims [ “宽度”],   screenDims [“height”],screenDims [“depth”]),...)

      使用get方法的好处是,如果字符中没有键,则可以提供一些默认值。 e.g .-

        

      screenDims.get( “高度”, “DEFAULT_VALUE”)

      (点)运算符用于访问对象的属性,可以是值或方法。