Python内置函数(三)—— c/d/e/filter

一、callable(object) —— 检查object是否可调用:

        return: True:object仍然可能调用失败;

                    False:调用对象object绝对不会成功

>>> callable(6)
False
>>> def add(a, b):
...     return a + b
... 
>>> callable(add)
True

二、chr(i) ——  用一个整数做参数,返回一个整数对应的ASCII值

        args:可以是十进制也可以是十六进制形式的数字;

>>> chr(0x31)
'1'
>>> chr(98)
'b'

三、classmethod() —— 修饰符,对应的函数不需要实例化,不需要self参数,但第一个参数需要表示自身的cls参数,可以用来调用类的属性,类的方法,实例化对象等;

四、compile() —— 将一个字符串编译为字节码

    语法:compile(source, filename, mode[, flags[, dont_inherit]])

    args:source: 字符串或者SAT(Abstract Syntax Trees)对象;

               filename: 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值;

               mode: 指定编译代码的种类,可以指定为exec、eval、single;

               flags: 变量作用域,局部命名空间,如果被提供,可以是任何映射对象;

               flags和dont_inherit:用来控制编译源码时的标志

    无实际应用场景,理解不了

 

>>> str = "3 * 4 + 6"
>>> a = compile(str, '', 'eval')
>>> eval(a)
18

 

五、complex() —— 创建复数

>>> complex(6, 7)
(6+7j)
>>> complex(2)
(2+0j)
>>> complex("2")
(2+0j)
>>> complex("1+6j")
(1+6j)
>>> complec("1 + 6j")                            # ”+“号两侧不能有空格
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'complec' is not defined

六、delattr(object, name) —— 删除对象object的属性name 

        delattr(x, "foobar") 等价于 del x.foobar

七、dict() —— 创建字典

八、dir([object]) —— 

        args: 1. 不带参数时,返回当前范围内的变量、方法和定义的类型列表

                 2. 带参数时,返回参数的属性、方法列表

>>> dir()    # 获取当前模块的属性列表
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__'
] >>> dir({}) # 获取字典的方法 ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__',
'__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__',
'__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear',
'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update',
'values'
]

八、divmod(a, b) —— 返回一个包含商和余数的元组(a//b, a%b);python 3.x不支持复数

>>> divmod(7, 2)
(3, 1)
>>> divmod(88.2, 3)
(29.0, 1.2000000000000028)

九、enumerate(sequence, [start=0]) —— 一般用在for循环中

>>> for i, element in enumerate(temp_list):
...     print(i, element)
... 
0 Spring
1 Summer
2 Fall
3 Winter

 

    将一个可遍历对象,将数据和下标都取出来

十、eval(expression[, globals[, locals]]) —— 用来执行一个字符串表达式,并返回表达式的值

        args: expression —— 表达式

                 globals —— 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象;

                 locals —— 变量作用域,局部命名空间,如果被提供,可以是任何映射对象;

>>> x = 7
>>> eval("3 + x")
10

十一、exec(object[, globals[, locals]]) —— 执行储存在字符串或文件中的python语句,相比于eval,exec可以执行更复杂的python代码;

         args: object: 必选参数  表示被指定的python代码,必须是字符串或code对象;

                  globals: 可选参数,字典类型

                   locals: 可先参数,任何映射对象类型

 

>>> a = "print('hello world')"
>>> exec(a)
hello world

 

十二、filter(function, iterable) —— iterable中的每个元素作为参数传递给函数进行判断,然后返回True或False,最后将返回True的元素放到iterable中,返回一个可迭代对象!!

def jud_empty(temp):
    if not temp:
        return False
    else:
        return True
    
temp_dict = {"T1": "",
             "T2": "OS",
             "T3": "VCC"
             }
real_pin_map = filter(jud_empty, temp_dict.values())
print(list(real_pin_map))

执行结果:['OS', 'VCC']

 

posted @ 2019-05-21 14:10  Chaclin  阅读(58)  评论(0)    收藏  举报