相关疑难解决方法(0)

将嵌套的Python dict转换为对象?

我正在寻找一种优雅的方法,使用一些嵌套的dicts和列表(即javascript样式的对象语法)在dict上使用属性访问来获取数据.

例如:

>>> d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]}
Run Code Online (Sandbox Code Playgroud)

应该可以通过这种方式访问​​:

>>> x = dict2obj(d)
>>> x.a
1
>>> x.b.c
2
>>> x.d[1].foo
bar
Run Code Online (Sandbox Code Playgroud)

我认为,如果没有递归,这是不可能的,但是什么是获得dicts的对象样式的好方法?

python dictionary object

509
推荐指数
20
解决办法
23万
查看次数

什么时候在python中使用class与dict?

在考虑设计时,在哪些情况下使用class与dict是否有意义?优点和缺点也很有用.

例如,

class AlbumState:
    """ AlbumState class, tracks photos shown, etc"""

    def __init__ (self, album):
        """ album for this object will track state"""
        self.album = album

        self.photos_shown = []
        self.photos_notshown = range(album.size())
Run Code Online (Sandbox Code Playgroud)

albumstate['album'] = album
albumstate['photos_shown'] = []
albumstate['photos_notshown'] = range(album.size())
Run Code Online (Sandbox Code Playgroud)

python

32
推荐指数
2
解决办法
1万
查看次数

Python:数据对象或类

我喜欢所有用于抓取网站的python库,我正在尝试使用BeautifulSoup和IMDB来获取乐趣.

当我来自Java时,我将一些Java实践合并到我的编程风格中.我正在尝试获取某个电影的信息,我可以创建一个Movie类,也可以只使用带有键属性的字典.

我的问题是,当一个类只包含数据而且几乎没有行为时,我应该只使用字典吗?在其他语言中创建类型将帮助您实施某些限制,并且由于类型检查IDE将帮助您编程,在python中并非总是这样,所以我该怎么办?

我是否应该只在有行为和数据的情况下创建一个类?或者创建一个电影类,即使它可能只是一个数据容器?

这一切都取决于你的模型,在这种特殊情况下,任何一个都很好,但我想知道什么是一个好的做法.

python dictionary class

5
推荐指数
1
解决办法
8309
查看次数

导入类与导入定义 python

我已经使用 python 一段时间了,但我缺少一些东西。

导入模块时,如果模块包含类或仅包含定义,有什么区别吗?例如,我有以下两个模块:

def hello():
    print("hello")
Run Code Online (Sandbox Code Playgroud)

或者

class Hello():
    def hello():
        print("hello")
Run Code Online (Sandbox Code Playgroud)

我从另一个模块导入它

import module_name

module_name.hello()
Run Code Online (Sandbox Code Playgroud)

或者

import module_name

Hello = module_name.Hello()
Hello.hello()
Run Code Online (Sandbox Code Playgroud)

代码有什么不同吗?

如果想并行执行怎么办?如果我只导入定义会有什么问题吗?

python python-3.x

5
推荐指数
1
解决办法
2718
查看次数

标签 统计

python ×4

dictionary ×2

class ×1

object ×1

python-3.x ×1