zoukankan      html  css  js  c++  java
  • 简明python教程十一----更多Python的内容

    特殊的方法

    __init__(self,...):这个方法在新建对象恰好要被返回使用之前被调用

    __del__(self):恰好在对象要被删除之前调用

    __str__(self):我们对对象使用print语句或使用str()的时候调用

    __lt__(self,other):当使用小于运算符(<)的时候调用

    __getitem__(self,key):使用x[key]索引操作符的时候调用

    __len__(self):对序列对象使用内建的len()函数的时候调用

    列表综合

    通过列表综合,可以从一个已有的列表导出一个新的列表。

    eg:你有一个数的列表,而你想要得到一个对应的列表,使其中所有大于2的数都是原来的2倍,对于这种,列表综合是最理想的方法。

    #!/usr/bin/python
    #Filename:list_comprehension.py
    
    listone = [2,3,4]
    listtwo=[2*i for i in listone if i > 2]
    print listtwo
    print listone

    结果:

    [6, 8]
    [2, 3, 4]

    在函数中接收元组和列表

    当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。

    >>> def powersum(power,*args):
        'Return the sum of each argument raised to specified power.'
        total=0
        for i in args:
            total += pow(i,power)
        return total

    结果:

    >>> powersum(2,3,4)
    25

    由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀,多余的参数则会被认为是一个字典的键值对

    lambda形式:

    lambda语句被用来创建新的函数对象,并且在运行时返回它们

    #!/usr/bin/python
    #Filename:lambda.py
    
    def make_repeater(n):
        return lambda s:s*n
    
    twice = make_repeater(2)
    
    print twice('word')
    print twice(5)

    结果:

    wordword
    10

    分析:lambda语句用来创建函数对象。本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。

    注意:即便是print语句也不能用在lambda形式中,只能使用表达式。

    exec和eval语句

    exec语句用来执行存储在字符串或文件中的python语句。

    例如:我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。

    >>> exec 'print "Hello World"'
    Hello World

    eval语句用来计算储存在字符串中的有效Python表达式。

    >>> eval('2*3')
    6

    assert语句

    assert语句用来声明某个条件是真的。

    例如:如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。

    当assert语句失败的时候,会引发一个AssertionError

    >>> mylist=['item']
    >>> assert len(mylist)>=1
    >>> mylist.pop()
    'item'
    >>> assert len(mylist)>=1
    
    Traceback (most recent call last):
      File "<pyshell#18>", line 1, in <module>
        assert len(mylist)>=1
    AssertionError

    repr函数

    repr函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。

    >>> i=[]
    >>> i.append('item')
    >>> `i`
    "['item']"
    >>> repr(i)
    "['item']"

    斜杠‘/’。反斜杠‘’。

  • 相关阅读:
    tp5 查询问题 字段自增 字段比较
    七牛云 {"error":"no such domain"}
    mac 命令
    跟微信公众号一起来学api安全
    vue 运行别人项目
    php sha1withrsa
    thinkphp5 使用路由下分页 form表单 搜索
    P2134 百日旅行 (斜率优化,DP)
    [USACO Section 4.4]追查坏牛奶Pollutant Control (最小割)
    [HAOI2007] 理想的正方形 (单调队列)
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/6431981.html
Copyright © 2011-2022 走看看