小编Mon*_*pit的帖子

在Python中使用COM事件

我试图在python中使用一些COM对象做一个示例应用程序.我已经从Win32上的Python编程中读到了着名的第12章,但是关于这个问题,它只说明:

所有事件处理都是使用普通IConnectionPoint接口完成的,虽然超出了本书的范围,但标准Python COM框架完全支持.

任何人都可以对此有所了解吗?我需要一个简单的入门样本.类似于为此示例添加代码以捕获电子表格的OnActivate事件

import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
...
Run Code Online (Sandbox Code Playgroud)

python com pywin32

7
推荐指数
1
解决办法
3495
查看次数

Twisted Deferred不显示没有errback的未处理异常

我正在阅读McKellar和Fettig的Twisted Network Programming Essentials,第二版.

我在Windows 7上运行Python 2.7.10上的Twisted 15.5.0.

在关于Deferred有一个应该引发的示例的部分中Unhandled Error in Deferred- 但是当我运行下面的最小示例时,我只是从控制台完全沉默:

最小的例子

from twisted.internet.defer import Deferred

def raiseErr(err):
    raise Exception(err)

d = Deferred()
d.addCallback(raiseErr)
d.callback("oh no")
Run Code Online (Sandbox Code Playgroud)

$ python test.py (no output)

实际书籍文本中的最小示例

本书的实际例子如下:

from twisted.internet.defer import Deferred

def callback1(result):
    print "Callback 1 said:", result
    return result

def callback2(result):
    print "Callback 2 said:", result

def callback3(result):
    raise Exception("Callback 3")

def errback1(failure):
    print "Errback 1 had an an error on", failure
    return failure

d = …
Run Code Online (Sandbox Code Playgroud)

python exception twisted deferred

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

Python 3.5 - 未定义名称"await"

我正在尝试await在Python 3.5中尝试协同程序的新语法.

我有一个这样的简单例子:

#! /usr/bin/env python
import asyncio

@asyncio.coroutine
def adder(*args, delay):
    while True:
        yield from asyncio.sleep(delay)
        print(sum(args))


def main():
    asyncio.Task(adder(1, 2, 3, delay=5))
    asyncio.Task(adder(10, 20, delay=3))

    loop = asyncio.get_event_loop()
    loop.run_forever()

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

我更改了yield from行以使用await关键字:

await asyncio.sleep(delay)

我得到SyntaxError:

  File "./test.py", line 8
    await asyncio.sleep(delay)
                ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

所以我试着await (asyncio.sleep(delay))看看会发生什么:

Task exception was never retrieved
future: <Task finished coro=<adder() done, defined at c:\python35\Lib\asyncio\coroutines.py:198> exception=NameError("name 'await' is not …
Run Code Online (Sandbox Code Playgroud)

python coroutine async-await python-3.5

4
推荐指数
1
解决办法
3420
查看次数