我可以写一个描述符,返回一个可以等待的未来。
class AsyncDescriptor:
def __get__(self, obj, cls=None):
# generate some async future here
return future
def __set__(self, obj, value):
# generate some async future here
return future
class Device:
attr=AsyncDescriptor()
device=Device()
现在,我可以用来获取协程中的值value=await device.attr
。
如何设置此属性?
await device.attr=5
-> SyntaxError:无法分配给等待表达式await setattr(device, 'attr', 5)
-> TypeError:对象NoneType不能在’await’表达式中使用device.attr=5
-> RuntimeWarning:从未等待协程’set‘您尝试执行的操作是不可能的(使用Python 3.5)。
虽然__get__
返回Future是明智的__set__
,但Python
3.5完全不支持进行异步。__set__
Python会忽略的返回值,因为没有赋值的“返回值”。且呼叫__set__
始终是同步的。就像您已经注意到的那样,a = (b.c = 5)
实际上会引发a SyntaxError
。
如果await device.attr = 5
允许类似异步分配,那么异步描述符可能会有一个单独的协议,即协程,__aget__
并__aset__
作为类似于异步上下文管理器(async with
/ __aenter__
)和异步迭代(async for
/ __aiter__
)的特殊方法。有关/支持背后的设计决策,请参见PEP
492
。async``await
还要注意,__get__
归还未来不会产生__get__
协程。
没有更多上下文,您似乎希望在描述符协议提供的属性访问抽象后面隐藏某些内容,最好将其明确地完成,但这当然取决于您。
在我的不和谐机器人,我希望所有的用户有一个可定制的配置文件。每当运行命令!profile或!p时,机器人就会显示一个包含bio(类似于“Hello World”之类的介绍)、自定义嵌入颜色和其他数据库信息(如硬币、能源等)的嵌入。我想确保当他们运行类似!desc Hello World的东西时,他们的profile embed将有消息Hello World,如果他们运行!desc Lorem,他们
我正在开发一个Eclipse插件,它可以为java项目生成一些模板。 当我调用向导时,我可以选择项目向导,但如果我能在“新建向导页面”中显示我的向导的描述,当它被选中/聚焦时,那就太好了.... 参考图片: 所以在这堂课上 我做了: GetStartingPage().SetDescription(“测试描述”);(没有幸运的结果。) GetStartingPage().SetTitle(“测试描
当我在Weblogic 10.3.6中部署WAR时,它会运行,但在Weblogic 10.3.0中,它会抛出以下内容: 无法加载描述符D:\bea103\user_projects\domain\SRVWinplex\Deployments\WinplexA模块WinplexA的oader2.java:768weblogic.servlet.internal.错误是escriptor.get描述符
问题内容: 我正在尝试将jenkins管道作为代码来做。我正在使用Github组织文件夹插件来扫描Github组织并为每个分支创建作业。有没有一种方法可以明确定义从Jenkinsfile获取的管道作业的名称?我还想为作业添加一些说明。 问题答案: 您需要使用如下所示。该部分很重要 编辑:上面一个重命名生成,其中原始问题是关于重命名作业。在管道中执行以下脚本可以做到这一点(这需要 适当的权限 )
单线程模型 单线程模型指的是,JavaScript 只在一个线程上运行。也就是说,JavaScript 同时只能执行一个任务,其他任务都必须在后面排队等待。 注意,JavaScript 只在一个线程上运行,不代表 JavaScript 引擎只有一个线程。事实上,JavaScript 引擎有多个线程,单个脚本只能在一个线程上运行(称为主线程),其他线程都是在后台配合。 JavaScript 之所以采
三个常见的中断和异常来源: 异常 - sync; 软中断 - sync; 外部中断 - async。 异常的类型: 故障 - 在指令导致异常之前会被准确地报告。%rip保存的指针指向故障的指令; 陷阱 - 在指令导致异常之后会被准确地报告。%rip保存的指针同样指向故障的指令; 终止 - 是不明确的异常。 因为它们不能被明确,中止通常不允许程序可靠地再次启动。 只有当RFLAGS.IF = 1时,