3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查 先把Python字节码翻译到一个精简版本, 便于分析 指令集这么大时准备追x86汇编了? 指令集减小到15以内 混合IR tmp = Call(x, (1, 2)) Python字节码 LOAD_FAST f LOAD_CONST (1, 2) CALL_FUNCTION 1 混合是指Stack Machine和 Register-based Machine语义共存 为何不最直接翻 译成寄存器语义?0 码力 | 43 页 | 10.71 MB | 1 年前3
Python 标准库参考指南 3.10.15 Reference, 发布 3.10.15 类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 以两个(非复数)数字为参数,在作整数除法时,返回商和余数。若操作数为混合类型,则适用二进 制算术运算符的规则。对于整数而言,结果与 (a // b, a % b) 相同。对于浮点数则结果为 (q, a % b),其中 q 通常为 math.floor(a / b),但可能比它小 不必是一个 Python 标识符 (参 见setattr())。 13 The Python Library Reference, 发布 3.10.15 注解: 由于 私有名称混合发生在编译时,因此必须手动混合私有属性(以两个下划线打头的属性)名 称以使用getattr() 来提取它。 globals() 返回实现当前模块命名空间的字典。对于函数内的代码,这是在定义函数时设置的,无论函数在哪里 __getattribute__() 中或是通过 __slots__。一个名称不为标识符的属性将不可使用点号标记 来访问,但是可以通过getattr() 等来访问。 注解: 由于 私有名称混合发生在编译时,因此必须手动混合私有属性(以两个下划线打头的属性)名 称以便使用setattr() 来设置它。 class slice(stop) class slice(start, stop[, step])0 码力 | 2207 页 | 10.45 MB | 9 月前3
Python 标准库参考指南 3.9.20 能在不同版本之间改变。例如,当实参是一个 类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型,适 用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 例如,getattr(x, 'foobar') 等同于 x.foobar。如果指定的属性不存在,且提供了 default 值, 则返回它,否则触发AttributeError。 注解: 由于 私有名称混合发生在编译时,因此必须手动混合私有属性(以两个下划线打头的属性)名 称以使用getattr() 来提取它。 globals() 返回实现当前模块命名空间的字典。对于函数内的代码,这是在定义函数时设置的,无论函数在哪里 性或者新增属性。函数会将值赋给该属性,只要对象允许这种操作。例如,setattr(x, 'foobar', 123) 等价于 x.foobar = 123。 注解: 由于 私有名称混合发生在编译时,因此必须手动混合私有属性(以两个下划线打头的属性)名 称以便使用setattr() 来设置它。 class slice(stop) class slice(start, stop[, step])0 码力 | 2146 页 | 10.17 MB | 9 月前3
Python 标准库参考指南 3.10.15 也可能在不同版本之间改变。例如,当实参 是一个类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 以两个(非复数)数字为参数,在作整数除法时,返回商和余数。若操作数为混合类型,则适用 二进制算术运算符的规则。对于整数而言,结果与 (a // b, a % b) 相同。对于浮点数则结果 为 (q, a % b),其中 q 通常为 math.floor(a / b),但可能比它小 存在,则如果提供了 default 则返回该值,否则将引发AttributeError。name 不必是一个 Python 标识符 (参见setattr())。 注解: 由于 私有名称混合发生在编译时,因此必须手动混合私有属性(以两个下划线打头的属性) 名称以使用getattr() 来提取它。 globals() 返回实现当前模块命名空间的字典。对于函数内的代码,这是在定义函数时设置的,无论函数在哪 用点号标 21 The Python Library Reference, 发布 3.10.15 记来访问,但是可以通过getattr() 等来访问。 注解: 由于 私有名称混合发生在编译时,因此必须手动混合私有属性(以两个下划线打头的属性) 名称以便使用setattr() 来设置它。 class slice(stop) class slice(start, stop[, step])0 码力 | 2072 页 | 10.39 MB | 9 月前3
Python 标准库参考指南 3.9.20 能在不同版本之间改变。例如,当实参 是一个类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型, 适用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 的值。例如,getattr(x, 'foobar') 等同于 x.foobar。如果指定的属性不存在,且提供了 default 值,则返回它,否则触发AttributeError。 注解: 由于 私有名称混合发生在编译时,因此必须手动混合私有属性(以两个下划线打头的属性) 名称以使用getattr() 来提取它。 globals() 返回实现当前模块命名空间的字典。对于函数内的代码,这是在定义函数时设置的,无论函数在哪 现有属性或者新增属性。函数会将值赋给该属性,只要对象允许这种操作。例如,setattr(x, 'foobar', 123) 等价于 x.foobar = 123。 注解: 由于 私有名称混合发生在编译时,因此必须手动混合私有属性(以两个下划线打头的属性) 名称以便使用setattr() 来设置它。 class slice(stop) class slice(start, stop[, step])0 码力 | 2015 页 | 10.12 MB | 9 月前3
Python 标准库参考指南 3.7.13 能在不同版本之间改变。例如,当实参是一个 类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型,适 用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 和二进制数)会生成整数。包含小数点或幂运算符的数字字面值会生成浮点数。在数字字面值末尾加上 'j' 或 'J' 会生成虚数(实部为零的复数),你可以将其与整数或浮点数相加来得到具有实部和虚部的复数。 Python 完全支持混合运算:当一个二元算术运算符的操作数有不同数值类型时,” 较窄” 类型的操作数会拓 宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄。不同类型的数字之间的比较,同比较这 些数字的精确值一样。 操作 bytes 和 bytearray 对象都支持通用 序列操作。它们不仅能与相同类型的操作数,也能与任何bytes-like object 进 行互操作。由于这样的灵活性,它们可以在操作中自由地混合而不会导致错误。但是,操作结果的返回值类 型可能取决于操作数的顺序。 注解: bytes 和 bytearray 对象的方法不接受字符串作为其参数,就像字符串的方法不接受 bytes 对象作为其参0 码力 | 1961 页 | 9.14 MB | 9 月前3
Python 标准库参考指南 3.8.20 能在不同版本之间改变。例如,当实参是一个 类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型,适 用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 和二进制数)会生成整数。包含小数点或幂运算符的数字字面值会生成浮点数。在数字字面值末尾加上 'j' 或 'J' 会生成虚数(实部为零的复数),你可以将其与整数或浮点数相加来得到具有实部和虚部的复数。 Python 完全支持混合运算:当一个二元算术运算符的操作数有不同数值类型时,” 较窄” 类型的操作数会拓 宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄。不同类型的数字之间的比较,同比较这 些数字的精确值一样。 操作 bytes 和 bytearray 对象都支持通用 序列操作。它们不仅能与相同类型的操作数,也能与任何bytes-like object 进 行互操作。由于这样的灵活性,它们可以在操作中自由地混合而不会导致错误。但是,操作结果的返回值类 型可能取决于操作数的顺序。 注解: bytes 和 bytearray 对象的方法不接受字符串作为其参数,就像字符串的方法不接受 bytes 对象作为其参0 码力 | 2052 页 | 9.74 MB | 9 月前3
Python 标准库参考指南 3.7.13 能在不同版本之间改变。例如,当实参 是一个类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型, 适用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 进制和二进制数)会生成整数。包含小数点或幂运算符的数字字面值会生成浮点数。在数字字面值末尾 加上 'j' 或 'J' 会生成虚数(实部为零的复数),你可以将其与整数或浮点数相加来得到具有实部和虚 部的复数。 Python 完全支持混合运算:当一个二元算术运算符的操作数有不同数值类型时,” 较窄” 类型的操作数会 拓宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄。不同类型的数字之间的比较,同 比较这些数字的精确值一样。 操作 bytes 和 bytearray 对象都支持通用 序列操作。它们不仅能与相同类型的操作数,也能与任何bytes-like object 进行互操作。由于这样的灵活性,它们可以在操作中自由地混合而不会导致错误。但是,操作结果的返 回值类型可能取决于操作数的顺序。 注解: bytes 和 bytearray 对象的方法不接受字符串作为其参数,就像字符串的方法不接受 bytes 对象作为 其参数一样。例如,你必须使用以下写法:0 码力 | 1846 页 | 9.09 MB | 9 月前3
Python 标准库参考指南 3.8.20 能在不同版本之间改变。例如,当实参 是一个类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型, 适用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 进制和二进制数)会生成整数。包含小数点或幂运算符的数字字面值会生成浮点数。在数字字面值末尾 加上 'j' 或 'J' 会生成虚数(实部为零的复数),你可以将其与整数或浮点数相加来得到具有实部和虚 部的复数。 Python 完全支持混合运算:当一个二元算术运算符的操作数有不同数值类型时,” 较窄” 类型的操作数会 拓宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄。不同类型的数字之间的比较,同 比较这些数字的精确值一样。 操作 bytes 和 bytearray 对象都支持通用 序列操作。它们不仅能与相同类型的操作数,也能与任何bytes-like object 进行互操作。由于这样的灵活性,它们可以在操作中自由地混合而不会导致错误。但是,操作结果的返 回值类型可能取决于操作数的顺序。 注解: bytes 和 bytearray 对象的方法不接受字符串作为其参数,就像字符串的方法不接受 bytes 对象作为 其参数一样。例如,你必须使用以下写法:0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.8.20 能在不同版本之间改变。例如,当实参 是一个类时,metaclass 的属性不包含在结果列表中。 divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型, 适用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 进制和二进制数)会生成整数。包含小数点或幂运算符的数字字面值会生成浮点数。在数字字面值末尾 加上 'j' 或 'J' 会生成虚数(实部为零的复数),你可以将其与整数或浮点数相加来得到具有实部和虚 部的复数。 Python 完全支持混合运算:当一个二元算术运算符的操作数有不同数值类型时,” 较窄” 类型的操作数会 拓宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄。不同类型的数字之间的比较,同 比较这些数字的精确值一样。 操作 bytes 和 bytearray 对象都支持通用 序列操作。它们不仅能与相同类型的操作数,也能与任何bytes-like object 进行互操作。由于这样的灵活性,它们可以在操作中自由地混合而不会导致错误。但是,操作结果的返 回值类型可能取决于操作数的顺序。 注解: bytes 和 bytearray 对象的方法不接受字符串作为其参数,就像字符串的方法不接受 bytes 对象作为 其参数一样。例如,你必须使用以下写法:0 码力 | 1927 页 | 9.69 MB | 9 月前3
共 26 条
- 1
- 2
- 3













