190715 Python 内置函数之dict

dict用于创建字典

1
2
3
4
5
6
>>> dict()
{}
>>> dict(a='a', b='b', c='c')
{'a': 'a', 'b': 'b', 'c': 'c'}
>>> dict([(1,10), (2, 20), (3,30)])
{1: 10, 2: 20, 3: 30}

请注意,传参为可迭代的序列的场景

190715 Python 内置函数之compile

将一个字符串编译为字节代码

这个比较厉害了,传入一段字符串,把它编译成可执行的脚本

语法

1
compile(source, filename, mode[, flags[, dont_inherit]])
  • source – 字符串或者AST(Abstract Syntax Trees)对象。。
  • filename – 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
  • mode – 指定编译代码的种类。可以指定为 exec, eval, single
  • flags – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
  • flagsdont_inherit是用来控制编译源码时的标志

举例说明

1
2
3
>>> str = "for i in range(0,10): print(i)"
>>> c = compile(str, '', 'exec')
>>> exec(c)

190715 Python 内置函数之classmethod

修饰符对应的函数不需要实例化,不需要self参数,第一个参数需要是表示自身类的cls参数,可以来调用类的属性,类的方法,实例化对象

举例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> class A:
... a = 10
... def m1(self):
... print("m1")
...
... @classmethod
... def m2(cls):
... print(cls.a)
... # 创建对象,然后再访问方法
... cls().m1()
...
>>> A.m2()
10
m1

190715 Python 内置函数之chr

chr() 参数为整数,返回一个对应的字符

1
2
3
4
5
6
>>> chr(10)
'\n'
>>> chr(78)
'N'
>>> chr(22020)
'嘄'

请注意传参可以为10进制,也可以为16进制,取值为 [0,114111]/[0,0x10FFFF])

190715 Python 内置函数之callable

检查一个对象是否是可调用,对于函数、方法、lambda 函式、 类以及实现了 __call__ 方法的类实例, 它都返回 True

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> callable(10)
False

>>> def a():
... return 1
...
>>> callable(a)
True

>>> class A:
... def m():
... pass
...
>>> callable(A)
True

>>> a = A()
>>> callable(a)
>>> callable(a.m)
True

190715 Python 内置函数之bytes

返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。

基本用法和 bytearray 相似,唯一区别是返回的数组是不可变的

举例如下

1
2
3
4
5
6
7
8
9
10
11
12
>>> bytes([1,2,3])
b'\x01\x02\x03'
>>> bytes('hello', 'utf-8')
b'hello'
>>> bytes(1)
b'\x00'

>>> a = bytes([1,2,3])
>>> a[1] = 20
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'bytes' object does not support item assignment

请注意,数组内容不可变,强制赋值时抛异常

190715 Python 内置函数之bytearray

返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256

语法:

1
class bytearray([source[, encoding[, errors]]])

参数说明:

  • source
    • 为整数,则返回一个长度为source的初始化数组
    • 字符串,则按照指定的 encoding 将字符串转换为字节序列
    • 迭代类型,则元素必须为[0,255]之间的整数
    • 无参数,初始化数组个数为0

实例

1
2
3
4
5
6
7
8
9
10
>>> bytearray('hello', 'utf-8')
bytearray(b'hello')
>>> bytearray(2)
bytearray(b'\x00\x00')
>>> bytearray([1,2,3])
bytearray(b'\x01\x02\x03')
>>> a = bytearray([1,2,3])
>>> a[1] = 20
>>> a
bytearray(b'\x01\x14\x03')

190715 Python 内置函数之bool

bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。

bool 是 int 的子类。

1
2
3
4
5
6
>>> bool('True')
True
>>> bool('true')
True
>>> bool(2)
True

190715 Python 内置函数之bin

bin() 返回一个整数 int 或者长整数 long int 的二进制表示。

1
2
3
4
>>> bin(10)
'0b1010'
>>> bin(16)
'0b10000'

190715 Python 内置函数之ascii

ascii() 函数类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 repr() 函数使用 \x, \u 或 \U 编码的字符

举例如下:

1
2
>>> ascii('你好hello')
"'\\u4f60\\u597dhello'"

190715 Python 内置函数之any

any与all作用比较像,区别在于只要有一个为true,则返回True

1
2
3
4
>>> any([0, '', False])
False
>>> any([1, '', False])
True

190715 Python 内置函数之abs

接下来我们将针对python的内置函数进行逐一说明,本文将介绍abs() – 返回数字的绝对值

1
abs(-10)

请注意:如果参数是一个复数,则返回它的大小

1
2
>>> abs(complex(-10, 1))
10.04987562112089

190715 Python 内置函数之getattr

返回一个对象属性值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> class A:
... a = 1
... b = 2
...
>>> a = A()
>>> getattr(a, 'a')
1
>>> a.a
1
# 获取一个不存在的属性值
>>> getattr(a, 'c')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'A' object has no attribute 'c'
# 如果不存在,则返回默认值
>>> getattr(a, 'c', 3)
3

请注意:如果获取属性不存在,且没有设置默认值时,会抛异常

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×