zoukankan      html  css  js  c++  java
  • python 基本的序列和映射规则

    >>> def checkIndex(key):
    ...     if not isinstance(key,(int,long)):raise TypeError
    ...     if key<0:raise IndexError
    ...
    >>> class ArithneticSequence:
    ...     def __init__(self,start=0,step=1):
    ...             self.start=start
    ...             self.step=step
    ...             self.changed={}
    ...     def __getitem__(self,key):
    ...             checkIndex(key)
    ...             try:return self.changed[key]
    ...             except KeyError:
    ...                     return self.start+key*self.step
    ...     def __setitem__(self,key,value):
    ...             checkIndex(key)
    ...             self.changed[key]=value
    ...
    >>> s=ArithneticSequence(1,2)
    >>> s[4]
    9
    >>> s[4]=2
    >>> s[4]=2
    >>> s[4]
    2
    >>> s[5]
    11
    >>> del s[4]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: ArithneticSequence instance has no attribute '__delitem__'
    >>> s["four"]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 7, in __getitem__
      File "<stdin>", line 2, in checkIndex
    TypeError
    >>> s[-42]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 7, in __getitem__
      File "<stdin>", line 3, in checkIndex
    IndexError

  • 相关阅读:
    想要学习设计模式,你得先会看类图,一张图读懂UML
    UML类图中箭头的含义
    DDD学习
    Customize your build
    WaitAll vs WhenAll
    When does a C# Task actually start?
    UE4中多种颜色轮廓线的后期处理
    [UE4]武器碰撞
    动态材质实例(Dynamic Material Instance)
    卷积运算
  • 原文地址:https://www.cnblogs.com/yhcreak/p/5363338.html
Copyright © 2011-2022 走看看