Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么与dart中带有语句的python等效_Python_Dart_Telegram_With Statement - Fatal编程技术网

什么与dart中带有语句的python等效

什么与dart中带有语句的python等效,python,dart,telegram,with-statement,Python,Dart,Telegram,With Statement,例如,当使用pyrogram库启动电报客户端时,可以执行以下操作: with Client as app: app.do_something() dart中已经有一个tdlib包,虽然不像pyrogram。 任何有关此主题的帮助都将不胜感激 对于那些了解Dart而不了解Python的人来说,with语句接受一个上下文管理器,并在执行主体前后执行其部分代码。上面的代码大致相当于 app = Client.__enter__() app.do_something() app.__exit__

例如,当使用pyrogram库启动电报客户端时,可以执行以下操作:

with Client as app:
  app.do_something()
dart中已经有一个tdlib包,虽然不像pyrogram。 任何有关此主题的帮助都将不胜感激


对于那些了解Dart而不了解Python的人来说,
with
语句接受一个上下文管理器,并在执行主体前后执行其部分代码。上面的代码大致相当于

app = Client.__enter__()
app.do_something()
app.__exit__()

除非
app.do\u something()
引发异常,否则
app.exit\uu()
保证被调用
\uuuuuuuuuuuuuuuuuu
\uuuuuuuuuuuuuuu
是由
客户机类型定义的两种方法,使其成为上下文管理器。

没有直接的Dart等价于Python
with
语句。但是,您可以使用以下模式实现相同的行为:

void clientScope(void函数(客户端)回调){
//初始化您的客户端
final client=client.initialize();
//充当“with”语句的主体
回拨(客户机);
//执行任何清理
client.cleanup();
}
然后可按以下方式使用:

clientScope((客户端应用程序){
app.doSomething();
});

为了保证健壮性,您还可以在try-catch-finally中包装
回调
,并在finally块中执行任何清理。
with
语句澄清了以前使用try…finally块来确保执行的代码。