繁体   English   中英

Python 使用 __enter__ 初始化 class

[英]Python init class with __enter__

我的User class 中有四个变量emailfirst_namelast_namepassword ,我正在尝试使用这种方法初始化我的 class :

with User(email, first_name, last_name, password) as user:

这是__enter__方法:

def __enter__(self):
    return

现在,当我在__enter__方法中调试return语句时,我可以看到变量已成功发送,但是当我调试user实例时,我得到None 在此处输入图像描述 在此处输入图像描述

任何帮助表示赞赏。

with User(email, first_name, last_name, password) as user:大致)相当于

u = User(email, first_name, last_name, password)
user = u.__enter__()

由于__enter__返回None ,这就是user所必须的。

如果您希望user成为实例u__enter__需要返回self

def __enter__(self):
    return self

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM