有没有一种方法可以使用Python的“ with”语句,例如C#的“ using”语句

阿尔瓦罗·富恩特斯

我读了这个问题,想到我也需要它,但是在Python中。因此,我想知道是否可以使用withPython中语句来做到这一点

基本上,我想要的是Python中的某种IDisposable(C#)类比。我知道,肯定会有所不同,我认为是这样的:

class ForUseInWith(IDisposableLike):
    #something here
    pass

并像这样使用它:

with ForUseInWith() as disposable:
    #something here
    pass

目前,我正在研究如何学习python参考PEP 343,如果我能做一个好的解决方案和一个聪明的例子,我将在这里发布答案。但顺便说一句,也许您可​​以帮助我。

英巴玫瑰

这很容易做到,您只需要在类中具有__enter____exit__方法即可。

例:

class ForUseInWith(object):

    def test(self):
        print 'works!'

    def __enter__(self):
        return self

    def __exit__(self, *args, **kwargs):
        pass

使用它:

>>> with ForUseInWith() as disposable:
    disposable.test()

works!

扩展它:

当然,您可以有一个__init__接收参数方法(就像open()这样),并且还可以在__exit__方法中包括处理错误/异常的方法。这种结构最适合用于简单的类,这些类也需要能够被处置,或者是一次性的过程,不需要停留或复杂的处置

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种方法可以在Python中使用if语句生成“ Not a number”?

来自分类Dev

在bash中,有没有一种方法可以使我的语句简短(if或)?

来自分类Dev

有没有一种方法可以使用merge语句将此查询转换为Oracle查询?

来自分类Dev

有没有一种方法可以解决使用break语句的问题?

来自分类Dev

有没有一种方法可以对动态创建的目标使用using语句?

来自分类Dev

多个before语句。有没有一种方法可以使用更少的代码来完成相同的事情?

来自分类Dev

有没有一种方法可以使用“ if”语句来查看divs高度是大于还是小于javascript中px的特定数量?

来自分类Dev

有没有一种方法可以删除Haskell中重复的where语句?

来自分类Dev

PHP:有没有一种方法可以缩短此if / elseif / else语句?

来自分类Dev

有没有一种方法可以执行if语句为空值

来自分类Dev

Postgres:有没有一种方法可以在INSERT语句之后执行代码?

来自分类Dev

有没有一种方法可以通过LINQ语句获得行数?

来自分类Dev

有没有一种方法可以在sql中的where子句中使用case语句使用or或=?

来自分类Dev

有没有一种方法可以在Django Compressor压缩标签中使用条件IF语句?

来自分类Dev

有没有一种方法可以在SQL中使用WHILE和IF / ELSE语句?

来自分类Dev

有没有一种方法可以在SQL中使用WHILE和IF / ELSE语句?

来自分类Dev

Python 3:使用exec时,有没有一种方法可以获取错误的行号和错误语句

来自分类Dev

有没有一种方法可以将EXCEPT语句重写为SQL中的NOT IN语句?

来自分类Dev

Python:有没有一种方法可以打印未知范围内的偶数,并且没有if语句?

来自分类Dev

有没有一种方法可以在一个语句中组合导入和导入?

来自分类Dev

有没有一种方法可以在一个语句中组合导入和导入?

来自分类Dev

在C ++中,有没有一种方法可以在switch语句中使用字符串?

来自分类Dev

有没有一种方法可以在bash脚本中的awk语句中定义用户定义的函数?

来自分类常见问题

有没有一种方法可以自动在变量上打印日志调试语句?

来自分类Dev

有没有一种方法可以在单语句SQL查询中定义命名常量/参数?

来自分类Dev

有没有一种方法可以重写此语句而无需子查询?

来自分类Dev

有没有一种方法可以自动在变量上打印日志调试语句?

来自分类Dev

有没有一种方法可以使用excel中的if语句返回一个人的名字(如果它是2个单词对3个单词)

来自分类Dev

有没有一种方法可以使用c ++实时阅读文本?

Related 相关文章

  1. 1

    有没有一种方法可以在Python中使用if语句生成“ Not a number”?

  2. 2

    在bash中,有没有一种方法可以使我的语句简短(if或)?

  3. 3

    有没有一种方法可以使用merge语句将此查询转换为Oracle查询?

  4. 4

    有没有一种方法可以解决使用break语句的问题?

  5. 5

    有没有一种方法可以对动态创建的目标使用using语句?

  6. 6

    多个before语句。有没有一种方法可以使用更少的代码来完成相同的事情?

  7. 7

    有没有一种方法可以使用“ if”语句来查看divs高度是大于还是小于javascript中px的特定数量?

  8. 8

    有没有一种方法可以删除Haskell中重复的where语句?

  9. 9

    PHP:有没有一种方法可以缩短此if / elseif / else语句?

  10. 10

    有没有一种方法可以执行if语句为空值

  11. 11

    Postgres:有没有一种方法可以在INSERT语句之后执行代码?

  12. 12

    有没有一种方法可以通过LINQ语句获得行数?

  13. 13

    有没有一种方法可以在sql中的where子句中使用case语句使用or或=?

  14. 14

    有没有一种方法可以在Django Compressor压缩标签中使用条件IF语句?

  15. 15

    有没有一种方法可以在SQL中使用WHILE和IF / ELSE语句?

  16. 16

    有没有一种方法可以在SQL中使用WHILE和IF / ELSE语句?

  17. 17

    Python 3:使用exec时,有没有一种方法可以获取错误的行号和错误语句

  18. 18

    有没有一种方法可以将EXCEPT语句重写为SQL中的NOT IN语句?

  19. 19

    Python:有没有一种方法可以打印未知范围内的偶数,并且没有if语句?

  20. 20

    有没有一种方法可以在一个语句中组合导入和导入?

  21. 21

    有没有一种方法可以在一个语句中组合导入和导入?

  22. 22

    在C ++中,有没有一种方法可以在switch语句中使用字符串?

  23. 23

    有没有一种方法可以在bash脚本中的awk语句中定义用户定义的函数?

  24. 24

    有没有一种方法可以自动在变量上打印日志调试语句?

  25. 25

    有没有一种方法可以在单语句SQL查询中定义命名常量/参数?

  26. 26

    有没有一种方法可以重写此语句而无需子查询?

  27. 27

    有没有一种方法可以自动在变量上打印日志调试语句?

  28. 28

    有没有一种方法可以使用excel中的if语句返回一个人的名字(如果它是2个单词对3个单词)

  29. 29

    有没有一种方法可以使用c ++实时阅读文本?

热门标签

归档