美文网首页
Python标准库学习(3)

Python标准库学习(3)

作者: leaflying | 来源:发表于2020-01-02 10:19 被阅读0次

11.chr(i)
返回 Unicode 码位为整数 i 的字符的字符串格式。实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。

>>> chr(1)
'\x01'
>>> chr(90)
'Z'
>>> chr(0x110000)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: chr() arg not in range(0x110000)
>>> chr(0x10ffff)
'\U0010ffff'

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

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class A(object):
    bar = 1
    def func1(self):  
        print ('foo') 
    @classmethod
    def func2(cls):
        print ('func2')
        print (cls.bar)
        cls().func1()  
 
A.func2()# 不需要实例化

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

>>> str = "for i in range(0,10): print(i)"
>>> c = compile(str,'','exec')
>>> c
<code object <module> at 0x7fff3c681b70, file "", line 1>
>>> exec(c)
0
1
2
3
4
5
6
7
8
9
>>> str = "3 * 4 + 5"
>>> a = compile(str,'','eval')
>>> eval(a)
17

mode 实参指定了编译代码必须用的模式。如果 source 是语句序列,可以是 'exec';如果是单一表达式,可以是 'eval';如果是单个交互式语句,可以是 'single'。

相关文章

网友评论

      本文标题:Python标准库学习(3)

      本文链接:https://www.haomeiwen.com/subject/elmnoctx.html