我试图创建我自己的类,其行为类似于常规类型,如下所示:
class CustomType:
def __init__(self, content):
self.content = content
def __str__(self):
return self.content
这意味着我可以这样做:
a = CustomType("hi there")
print(a) # 'hi there'
但问题是我必须使用a = CustomType("hi there")
。有没有办法可以做a = /hi there\
或类似的解决方案让我创建自己的语法糖?
感谢。
答案 0 :(得分:5)
没有。 Python不支持创建新语法。
答案 1 :(得分:2)
注意:我不建议这样做。
您无法做到这一点,因为解析器不知道要查找它,但如果您想要类似的东西,您可以创建一个自定义类,当返回CustomType
的新实例时除以字符串:
class CustomSyntax:
def __truediv__(self, value):
return CustomType(value)
然后,如果您有该类的实例(让我们称之为c
),您可以在需要CustomType
的实例时将其除以字符串:
a = c/'hi there'
b = c/'hello world'
然而,这有点奇怪,你最好坚持你的常规构造函数。