2017-08-30 70 views
0

我試圖創建自己的類,它的作用就像一個普通的類型,就像這樣:創建語法糖定義一個變量爲一個類的實例

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

解析器無法知道要查找那個 –

+2

不是。除非你想破解消息來源。 –

回答

5

不。不支持創建新語法。

2

注意:我不會建議這樣做。

你不能這樣做,因爲解析器不知道去找它,但如果你想類似的東西,你可以創建時的字符串分割,返回的CustomType一個新實例的自定義類:

class CustomSyntax: 
    def __truediv__(self, value): 
     return CustomType(value) 

然後,如果你有這樣的類的實例(我們稱之爲c),你可以通過一個字符串你想要的CustomType實例的任何時間將其劃分:

a = c/'hi there' 
b = c/'hello world' 

然而,這是一個有點古怪,你會是bes不要堅持你的常規構造函數。

相關問題