On this page
8.16. new —创建运行时内部对象
从 2.6 版开始不推荐使用:Python 3 中已删除new模块。请改用types模块的类。
new模块允许与解释程序对象创建Function的接口。当需要“神奇地”创建新对象而不是pass使用常规创建函数时,这主要用于 marshal 型函数。此模块为解释器提供了一个低级接口,因此在使用此模块时必须格外小心。可以提供非明智的参数,从而在使用对象时使解释器崩溃。
new模块定义以下Function:
new.
instance
(* class * [,* dict *])- 此函数使用字典* dict 创建 class 的实例,而无需调用init()构造函数。如果Ellipsis dict *或
None
,则会为新实例创建一个新的空字典。请注意,不能保证该对象将处于一致状态。
- 此函数使用字典* dict 创建 class 的实例,而无需调用init()构造函数。如果Ellipsis dict *或
new.
instancemethod
(* function , instance , class *)- 此函数将返回绑定到* instance 的方法对象,如果 instance *为
None
则不绑定。 Function必须是可调用的。
- 此函数将返回绑定到* instance 的方法对象,如果 instance *为
new.
function
(* code , globals * [,* name * [,* argdefs * [,* closure *]]])- 返回具有给定代码和全局变量的(Python)函数。如果指定* name ,则必须为字符串或
None
。如果它是字符串,则该函数将具有给定的名称,否则该函数的名称将取自code.co_name
。如果给定 argdefs ,则它必须是一个 Tuples,并将用于确定参数的默认值。如果给出 closure *,它必须是None
或包含要绑定到code.co_freevars
中的名称的对象的单元格 Tuples。
- 返回具有给定代码和全局变量的(Python)函数。如果指定* name ,则必须为字符串或
new.
code
((argcount , nlocals , stacksize , flags , codestring , constants , names , varnames , filename , name , firstlineno , lnotab * )- 此Function是PyCode_New() C Function的接口。
new.
module
(* name * [,* doc *])- 此函数返回名称为* name *的新模块对象。 * name 必须为字符串。可选的 doc *参数可以具有任何类型。
new.
classobj
(* name , baseclasses , dict *)- 此函数返回一个新的类对象,名称为* name ,它是从 baseclasses (应该是一个类的 Tuples)派生的,并带有命名空间 dict *。