相关疑难解决方法(0)

错误:"'dict'对象没有属性'iteritems'"

我正在尝试使用NetworkX读取一个Shapefile并使用该函数write_shp()生成将包含节点和边缘的Shapefile(在此示例之后 < - 此链接现在已经死了),但是当我尝试运行它给出的代码时我有以下错误:

Traceback (most recent call last):   File
"C:/Users/Felipe/PycharmProjects/untitled/asdf.py", line 4, in
<module>
    nx.write_shp(redVial, "shapefiles")   File "C:\Python34\lib\site-packages\networkx\readwrite\nx_shp.py", line
192, in write_shp
    for key, data in e[2].iteritems(): AttributeError: 'dict' object has no attribute 'iteritems'
Run Code Online (Sandbox Code Playgroud)

我正在使用Python 3.4并通过pip install安装NetworkX.

这个错误之前,它已经给了我另外一个说:"x范围不存在"或类似的东西,所以我看着它,只是改变xrangerange在nx_shp.py文件,这似乎解决它.

根据我的阅读,它可能与Python版本(Python2与Python3)有关.

python dictionary

370
推荐指数
4
解决办法
34万
查看次数

在Python中实现回调 - 将可调用的引用传递给当前函数

我想Observable在Python中为几个工作者实现模式,并遇到了这个有用的片段:

class Event(object):
    pass

class Observable(object):
    def __init__(self):
        self.callbacks = []
    def subscribe(self, callback):
        self.callbacks.append(callback)
    def fire(self, **attrs):
        e = Event()
        e.source = self
        for k, v in attrs.iteritems():
            setattr(e, k, v)
        for fn in self.callbacks:
            fn(e)
Run Code Online (Sandbox Code Playgroud)

来源:这里

据我所知,为了这个subscribe,我需要将回调函数传递给将被调用的函数fire.如果调用函数是一个class方法,大概我可以使用self,但在没有这个的情况下 - 我怎么能直接得到一个对该self.callbacks.append(callback)位有用的回调?

python design-patterns functional-programming callback observer-pattern

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

EventHandler,事件,Python中基于委托的编程任何例子都会欣赏吗?

基本上我是C#开发人员,我知道C#的做法,EventHandler,委托,甚至......

但最好的方法是在Python上实现它.

python events delegates function-pointers event-handling

12
推荐指数
1
解决办法
6312
查看次数

在Python中实现可观察集合的推荐方法?

我希望在 Python 中有一些可观察的集合/序列,让我能够监听更改事件,例如添加新项目或更新项目:

list = ObservableList(['a','b','c'])
list.addChangeListener(lambda new_value: print(new_value))
list.append('a') # => should trigger the attached change listener

data_frame = ObservableDataFrame({'x': [1,2,3], 'y':[10,20,30]})
data_frame.addChangeListener(update_dependent_table_cells) # => allows to only update dependent cells instead of a whole table
Run Code Online (Sandbox Code Playgroud)

答:我发现以下项目提供了可观察集合的实现,并且看起来很有前途:

https://github.com/dimsf/Python-observable-collections

它做了我想要的:

from observablelist import ObservableList

def listHandler(event):
    if event.action == 'itemsUpdated':
        print event.action + ', old items: ' + str(event.oldItems) + ' new items: ' + str(event.newItems) + ' at index: ' + str(event.index)
    elif event.action == 'itemsAdded' or event.action == …
Run Code Online (Sandbox Code Playgroud)

python collections sequence observable observer-pattern

6
推荐指数
1
解决办法
1763
查看次数

如何等待对象改变状态

在我的async处理程序中,我想等到任务的状态发生变化.现在,我只是在无限循环中检查状态并等待.这是一个例子,wait_until_done函数:

import asyncio


class LongTask:
    state = 'PENDING'

my_task = LongTask()


def done():
    my_task.state = 'DONE'

async def wait_until_done():
    while True:
        if my_task.state == 'PENDING':
            await asyncio.sleep(2)
        else:
            break
    print("Finally, the task is done")


def main(loop, *args, **kwargs):
    asyncio.ensure_future(wait_until_done())
    loop.call_later(delay=5, callback=done)

loop = asyncio.get_event_loop()
main(loop)
loop.run_forever()
Run Code Online (Sandbox Code Playgroud)

这样做有更好的方法吗?

python python-asyncio python-3.5

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

Python观察者设计模式

我有两个问题:

  1. 我正在尝试在Python中实现Observer设计模式.最简单的实现是什么?

    我需要它来观察我正在构建的渲染农场中的机器状态.

  2. 那里有没有好的Python设计模式书?

python design-patterns

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

如何在类的 __init__ 变量更改时检测和触发功能

我希望能够监视变量并在更改类的实例时调用类中的函数。

class Example:
    def __init__(self, content):
        self.content = content

example1 = Example('testing')

example1.content = 'testing123'
Run Code Online (Sandbox Code Playgroud)

我希望能够检查是否example1.content已更改/更新,如果已更改,请运行一些代码。

python class observer-pattern

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