list.py

来自「Boost provides free peer-reviewed portab」· Python 代码 · 共 119 行

PY
119
字号
# Copyright David Abrahams 2004. Distributed under the Boost# Software License, Version 1.0. (See accompanying# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)'''>>> from list_ext import *>>> new_list()[]>>> listify((1,2,3))[1, 2, 3]>>> letters = listify_string('hello')>>> letters['h', 'e', 'l', 'l', 'o']>>> X(22)X(22)>>> def identity(x):...     return x>>> assert apply_object_list(identity, letters) is letters  5 is not convertible to a list>>> try: result = apply_object_list(identity, 5)... except TypeError: pass... else: print 'expected an exception, got', result, 'instead'>>> assert apply_list_list(identity, letters) is letters  5 is not convertible to a list as a return value>>> try: result = apply_list_list(len, letters)... except TypeError: pass... else: print 'expected an exception, got', result, 'instead'>>> append_object(letters, '.')>>> letters['h', 'e', 'l', 'l', 'o', '.']  tuples do not automatically convert to lists when passed as arguments  >>> try: append_list(letters, (1,2))... except TypeError: pass... else: print 'expected an exception'>>> append_list(letters, [1,2])>>> letters['h', 'e', 'l', 'l', 'o', '.', [1, 2]]    Check that subclass functions are properly called    >>> class mylist(list):...     def append(self, o):...         list.append(self, o)...         if not hasattr(self, 'nappends'):...             self.nappends = 1...         else:...             self.nappends += 1...>>> l2 = mylist()>>> append_object(l2, 'hello')>>> append_object(l2, 'world')>>> l2['hello', 'world']>>> l2.nappends2>>> def printer(*args):...     for x in args: print x,...     print...>>> y = X(42)>>> exercise(letters, y, printer)after append:['h', 'e', 'l', 'l', 'o', '.', [1, 2], X(42), 5, X(3)]number of X(42) instances: 1number of 5s: 1after extend:['h', 'e', 'l', 'l', 'o', '.', [1, 2], X(42), 5, X(3), 'x', 'y', 'z']index of X(42) is: 7index of 'l' is: 2after inserting 666:['h', 'e', 'l', 'l', 666, 'o', '.', [1, 2], X(42), 5, X(3), 'x', 'y', 'z']inserting with object as index:['h', 'e', 'l', 'l', 666, '---', 'o', '.', [1, 2], X(42), 5, X(3), 'x', 'y', 'z']popping...['h', 'e', 'l', 'l', 666, '---', 'o', '.', [1, 2], X(42), 5, X(3), 'x', 'y']['h', 'e', 'l', 'l', 666, 'o', '.', [1, 2], X(42), 5, X(3), 'x', 'y']['h', 'e', 'l', 'l', 666, 'o', '.', [1, 2], X(42), X(3), 'x', 'y']removing X(42)['h', 'e', 'l', 'l', 666, 'o', '.', [1, 2], X(3), 'x', 'y']removing 666['h', 'e', 'l', 'l', 'o', '.', [1, 2], X(3), 'x', 'y']reversing...['y', 'x', X(3), [1, 2], '.', 'o', 'l', 'l', 'e', 'h']sorted:[[1, 2], '.', 'e', 'h', 'l', 'l', 'o', 'x', 'y']reverse sorted:['y', 'x', 'o', 'l', 'l', 'h', 'e', '.', [1, 2]]'''def run(args = None):    import sys    import doctest    if args is not None:        sys.argv = args    return doctest.testmod(sys.modules.get(__name__))    if __name__ == '__main__':    print "running..."    import sys    status = run()[0]    if (status == 0): print "Done."    sys.exit(status)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?