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()
  • 相关阅读:
    ORA-28040: No matching authentication protocol
    kettle增量抽取数据--高效抽取方式
    为什么MySQL的索引要使用B+树而不是其它树形结构?比如B树?
    echarts饼图指示线文字换行
    数据库概论
    Java学习笔记
    案例分析
    软件工程作业3
    软件工程作业2
    软件工程作业1
  • 原文地址:https://www.cnblogs.com/alexkn/p/4652914.html
Copyright © 2011-2022 走看看