为什么Python的框架会从控制器返回字典?

Jon*_*ero 2 python ruby-on-rails web2py

为什么(例如web2py)从字典中的控制器返回数据而不是变量(参见Rails)?

例如:

return dict(sape=4139, guido=4127, jack=4098)
Run Code Online (Sandbox Code Playgroud)

而不是(这是Rails的方式)

@var1 = "jello" 
@var2 = "hihi"
Run Code Online (Sandbox Code Playgroud)

使用字典而不是普通变量(速度/代码方式)是否有任何优势?

更新:上面的方法实际上是创建字典的正确方法(至少在Python 2.6.1中).另一种方式(许多人说它是正确的)

return {"var1": "jello", "var2": "hihi"} 
Run Code Online (Sandbox Code Playgroud)

python框架并没有大量使用它.

Python的文档:"当键是简单的字符串时,有时更容易使用关键字参数指定对:"

dict(sape=4139, guido=4127, jack=4098)
Run Code Online (Sandbox Code Playgroud)

Aar*_*lla 5

主要的优点是,这是python中返回a)多于一个值的唯一方法, b)给该值一个名称.其他选项是使用类(额外的代码),返回一个元组(没有名称,所以你必须使用索引来访问值)或允许只返回一个值,这可能意味着每个人都会返回一个字典,因为这是最简单的解决方案.

它还允许包装多个方法并加入/合并其结果.最后,它允许为每个调用轻松返回不同的值/名称对,例如,省略可选值或返回其他提示.