python - 使用“with”创建的对象返回“无”
问题描述
我正在尝试编写一个简单的银行系统。我应该提一下,我是一个 Python 菜鸟。为此,我编写了一个“帐户”类。这是代码的重要部分:
class Account:
def __init__(self, _key, name, money):
self.key = _key
self.name = name
self.money = money
self.listhistory = [['start',
self.money,
datetime.datetime.now()
]]
def __enter__(self):
pass
def __exit__(self, exc_type, exc_value, exc_tb):
pass
def __str__(self):
return str(self.key)
def __repr__(self):
return (f'{self.__class__.__name__}('
f'{self.key},'
f'{self.name},'
f'{self.money})')
当我使用
import bank
with bank.Account(1, 'name1', 500) as name1:
pass
with bank.Account(2, 'name2', 500) as name2:
pass
,代码执行时没有错误,但 'name1' 和 'name2' 都是 'None'。它们不应该是对象的引用吗?我真的很感激一些帮助!
解决方案
请注意以下文档__enter__
:
with 语句将此方法的返回值绑定到
as
语句子句中指定的目标(如果有) 。
你没有从__enter__
. self
从它返回:
def __enter__(self):
return self