首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >functools.partial as IronPython EventHandler

functools.partial as IronPython EventHandler
EN

Stack Overflow用户
提问于 2016-01-03 07:44:20
回答 1查看 114关注 0票数 3

我目前正在试用IronPython解释器。在进行本教程时,我遇到了委托和事件处理程序。本教程所做的事情如下:

代码语言:javascript
复制
from System.IO import FileSystemWatcher

w = FileSystemWatcher()

def handle(*args):
    print args

w.Changed += handle

所以我试着变得聪明并做这个:

代码语言:javascript
复制
from System.IO import FileSystemWatcher
from __future__ import print_function
from functools import partial    

w = FileSystemWatcher()
w.Changed += partial(print, "Changed: ")

但却失败了:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Object is not callable.

其中line 1引用(交互式会话)中的最后一行

所以IronPython认为partial对象是不可调用的,尽管callable(partial(print, "Changed: "))返回True

通过这个解决方法,可以接受处理程序:

代码语言:javascript
复制
w.Changed += partial(print, "Changed: ").__call__

我的问题是:

为什么不接受partial对象作为事件处理程序。这是个虫子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-03 08:50:23

这可能不是解决方案,人们可以期待,但有一个问题,已经开放了几年- https://github.com/IronLanguages/main/issues/808

在.NET版本的2.6.2和2.7b1中不起作用: 4.0.30319.1 ipy26测试案例-26482.py 对象不可调用。 ipy27测试案例-26482.py 对象不是callable.py testcase-26482.py 对象不可调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34574401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档