zoukankan      html  css  js  c++  java
  • Python中类的特殊方法详解

    本文和大家分享的主要是python语言中类的特殊方法相关用法,希望对大家有帮助。

      构造序列

      1._len_(self)

      2._getitem_(self,key)

      3._setitem_(self,key,value)

      4._delitem_(self,key)

      程序演示:

      myseq.py

      class MySeq:

      def __init__(self):

      self.lseq = ["I","II","III","IV"]

      def __len__(self):

      return len(self.lseq)

      def __getitem__(self,key):

      if 0 <= key < 4:

      return self.lseq[key]

      if __name__ == '__main__':

      m = MySeq()

      for i in range(4):

      print(m[i])

      程序的运行结果为:

      构造iter

      1._iter_(self)

      2._next_(self)

      程序演示如下:

      class MyIter:

      def __init__(self,start,end):

      self.count = start

      self.end = end

      def __iter__(self):

      return self

      def __next__(self):

      if self.count < self.end:

      r = self.count

      self.count += 1

      return r

      else:

      raise StopIteration

      if __name__ == '__main__':

      for i in MyIter(1,10):

      print(i)

      程序的运行结果为:

      构造可比较类

      1._it_()

      2._le_()

      3._gt_()

      4._ge_()

      5._eq_()

      6._ne_()

      程序演示如下:

      mycmp.py

      class MyIter:

      def __init__(self,start,end):

      self.count = start

      self.end = end

      def __iter__(self):

      return self

      def __next__(self):

      if self.count < self.end:

      r = self.count

      self.count += 1

      return r

      else:

      raise StopIteration

      if __name__ == '__main__':

      for i in MyIter(1,10):

      print(i)

      程序的运行结果为:

      构造可运算类

      1._add_()

      2._sub_()

      3._mul_()

      4._div_()

      程序演示如下:

      class Point:

      def __init__(self,x,y):

      self.x = x

      self.y = y

      def __add__(self,oth):

      return Point(self.x + oth.x , self.y + oth.y)

      def info(self):

      print(self.x,self.y)

      if __name__ == '__main__':

      pa = Point(1,2)

      pb = Point(3,4)

      pc = pa + pb

      pc.info()

      程序的运行结果为:

     

     

    原文链接:http://www.maiziedu.com/wiki/python/special/

  • 相关阅读:
    [Bzoj2243][SDOI2011]染色(线段树&&树剖||LCT)
    [poj3074]Sudoku(舞蹈链)
    [Bzoj1047][HAOI2007]理想的正方形(ST表)
    [Bzoj1030][JSOI2007]文本生成器(AC自动机&dp)
    [Bzoj2431][HAOI2009]逆序对数列(前缀和优化dp)
    [Bzoj1072][SCOI2007]排列perm(状压dp)
    [Bzoj1195][HNOI2006]最短母串(AC自动机)
    Ajax解决IE浏览器兼容问题
    运行eclipse弹出“Failed to load the JNI shared”解决方法
    Java表单类双击提交
  • 原文地址:https://www.cnblogs.com/space007/p/6114759.html
Copyright © 2011-2022 走看看