zoukankan      html  css  js  c++  java
  • python魔法函数的一些疑问

    看了魔法函数,有一点疑问。1中需要用self.word才能执行,而2直接用self就可以执行。而1中Word继承了int基本类型,但在__new__时并没有什么卵用。当用

    Word(“123”)来实例化时,看到的运算结果是以字符串形式来进行运算的,比如“123”*3=123123123。

    1.

    class Word(int):
        def __new__(cls, word):
            word = int(word)
            return int.__new__(cls,word)
        def __init__(self,word):
            self.word = word
    
        def __add__(self, other):
            return self.word+other
    
        def __sub__(self,other):
            return self.word-other
    
        def __mul__(self, other):
            return self.word*other
    
        def __div__(self, other):
            return sself.word/other
    
    
    def main():
        a=Word(123)
        b=Word(12)
        print a-b
    if __name__ == '__main__':
        main()

    2.

    class Word(str):
        def __new__(cls, word):
            word = word.replace(" ","")
            return str.__new__(cls,word)
    
        def __init__(self,word):
            self.word = word
    
        def __gt__(self, other):
            return len(self)>len(other)
    
        def __lt__(self,other):
            return len(self)<len(other)
    
        def __ge__(self, other):
            return len(self)>=len(other)
    
        def __le__(self, other):
            return len(self)<=len(other)
        def __eq__(self, other):
            return len(self)==len(other)
    
    
    def main():
        a=Word("foorrrdd")
        b=Word("sswwss")
        print a==b
    if __name__ == '__main__':
        main()
  • 相关阅读:
    Find cmd
    splitFile2SmallFile
    IPC-->PIPO
    Thread and shared lock
    Python Thread related
    linux 文件系统
    linux commands
    关于 gnome3 无法显示应用程序所有界面的反馈
    Windows 网络编程
    常见端口 HTTP代码
  • 原文地址:https://www.cnblogs.com/alexkn/p/4652914.html
Copyright © 2011-2022 走看看