Using with statement in python
本问题已经有最佳答案,请猛点这里访问。
嘿,伙计们正试图在我的代码中使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | class Employee: empCount = 0 def __init__(self, name, salary): self.name = name self.salary = salary c = Employee("blah",1) c.empCount = ['aad'] class Subin(Employee): def __init__(self, name, salary): self.name = name self.salary = salary def __enter__(self): return self def __exit__(self ,type): print 'ok' def babe(self): with c.empCount as b: return 0 b = Subin("sds",1) b.babe() |
当我运行代码时,我得到错误:
1 2 3 4 5 6 | Traceback (most recent call last): File"C:/Python27/dfg", line 38, in <module> b.babe() File"C:/Python27/dfg", line 33, in babe with c.empCount as b: AttributeError: __exit__ |
你们能告诉我为什么会这样吗?
首先,python代码不是"自由形式"。如果缩进不正确,它将不会编译或运行。将代码剪切并粘贴到解释器中会显示这一点。
其次,您错误地使用了
在官方文件中描述了WITH语句,并提供了一些示例。
在尝试上下文管理器之前,我建议您多使用一些基本的Python。