创建语法糖以将变量定义为类实例

时间:2017-08-30 16:56:28

标签: python python-3.x class types syntactic-sugar

我试图创建我自己的类,其行为类似于常规类型,如下所示:

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\或类似的解决方案让我创建自己的语法糖?

感谢。

2 个答案:

答案 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'

然而,这有点奇怪,你最好坚持你的常规构造函数。