python %s 字符串替换和 "self"?
python %s string substitution and "self"?
在 pyyaml 文档中查看此代码,为什么 "Dice(%s,%s)" % self
有效?有两个 %s
但只有一个 var self
?
>>> class Dice(tuple):
... def __new__(cls, a, b):
... return tuple.__new__(cls, [a, b])
... def __repr__(self):
... return "Dice(%s,%s)" % self
>>> print Dice(3,6)
Dice(3,6)
http://pyyaml.org/wiki/PyYAMLDocumentation#Constructorsrepresentersresolvers
Dice
是 tuple
的派生 class,它是长度为 2 的 tuple
。
你可以看到
>>> print yaml.dump(Dice(3,6))
!!python/object/new:__main__.Dice
- !!python/tuple [3, 6]
因此在您的上下文中,它运行良好,它确实是一个长度为 2 的元组,因此可以解析所使用的字符串。
在 pyyaml 文档中查看此代码,为什么 "Dice(%s,%s)" % self
有效?有两个 %s
但只有一个 var self
?
>>> class Dice(tuple):
... def __new__(cls, a, b):
... return tuple.__new__(cls, [a, b])
... def __repr__(self):
... return "Dice(%s,%s)" % self
>>> print Dice(3,6)
Dice(3,6)
http://pyyaml.org/wiki/PyYAMLDocumentation#Constructorsrepresentersresolvers
Dice
是 tuple
的派生 class,它是长度为 2 的 tuple
。
你可以看到
>>> print yaml.dump(Dice(3,6))
!!python/object/new:__main__.Dice
- !!python/tuple [3, 6]
因此在您的上下文中,它运行良好,它确实是一个长度为 2 的元组,因此可以解析所使用的字符串。