在这个扩展python基类型的_exit __)函数中,这三个参数从何而来?

在这个扩展python基类型的_exit __)函数中,这三个参数从何而来?,python,python-3.x,types,metaprogramming,Python,Python 3.x,Types,Metaprogramming,我试着使用内置的字符串类型,想知道是否可以使用和语法的字符串。显然,以下方面将失败: “hello”作为hello的: 打印(f“{hello}world!”) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 AttributeError:\u输入__ 然后,仅从str派生一个类,该类具有with所需的两个属性: 类字符串(str): 定义输入(自我): 回归自我 定义退出(自我): ... 将字符串(“hello”)作为hello: 打印(f“{hello}world!”) 回溯(最近

我试着使用内置的字符串类型,想知道是否可以使用
语法的字符串。显然,以下方面将失败:

“hello”作为hello的
:
打印(f“{hello}world!”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:\u输入__
然后,仅从
str
派生一个类,该类具有
with
所需的两个属性:

类字符串(str):
定义输入(自我):
回归自我
定义退出(自我):
...
将字符串(“hello”)作为hello:
打印(f“{hello}world!”)
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
TypeError:_exit__()接受1个位置参数,但提供了4个位置参数
好的,我想知道这些参数是什么….,我在
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

类字符串(str):
定义输入(自我):
回归自我
定义退出(自我,*args,**kwargs):
打印(“参数:”,参数)
打印(“kwargs:,kwargs”)
将字符串(“hello”)作为hello:
打印(f“{hello}world!”)
你好,世界!
args:(无,无,无)
kwargs:{}
我想通常可以用
str()
调用不同的类型,但这三个参数是什么?我怎样才能找到关于这三个额外参数的更多信息呢?我想最后,我可以去哪里看内置类型的实现,等等

这些实际上是contextmanager类的方法(
\uuuuuu enter\uuuuuuu()
&
\uuuuuuu exit\uuuuuuuu()
)。详细解释请参阅本手册

\uuuu exit\uuuu()
方法将退出运行时上下文,并返回一个布尔标志,指示是否应抑制发生的任何异常

这三个论点是:

  • 异常类型
  • 异常值
  • 回溯

  • 这些参数的值包含有关抛出异常的信息如果值等于None,则表示未引发异常。

    检查此问题:啊,我明白了,建议的链接@schwobasegll非常有用,aSimon Crane也一样。这三个论点现在完全有道理了!谢谢