没有合适的资源?快使用搜索试试~ 我知道了~
除了内置的 integer , float 等简单类型之外,一切都是 object 。 例如: module, function, package, list, tuple, dict, 注: Python 2.2 以后的版本中 list, tuple, dict 才可以叫做 object ,因为 new s ty le class 。 什么是 name space : name space 是 name 和 object 之间的映射关系。 每一个 name 唯一的和一个 object 绑定。 一个 object 可以有多个 name 。 如果没有 name 和 object 绑定,那么 object 就会消失了。 name space 是一个动态的数据结构, dictionary 。 objname = object 会创建一个 name 。 什么 aliase : 如果两个 name 指向同一个 object ,那么这两个 name 互为 aliase 。 什么是 name : name 是一个字符串,指向一个 object 。 什么是 object : object 是一个独立的
资源推荐
资源详情
资源评论
python(1)
除了内置的 integer , float 等简单类型之外,一切都是 object 。
例如: module, function, package, list, tuple, dict,
注: Python 2.2 以后的版本中 list, tuple, dict 才可以叫做 object ,因为 new sty
le class 。
什么是 name space :
name space 是 name 和 object 之间的映射关系。
每一个 name 唯一的和一个 object 绑定。
一个 object 可以有多个 name 。
如果没有 name 和 object 绑定,那么 object 就会消失了。
name space 是一个动态的数据结构, dictionary 。
objname = object 会创建一个 name 。
什么 aliase :
如果两个 name 指向同一个 object ,那么这两个 name 互为 aliase 。
什么是 name :
name 是一个字符串,指向一个 object 。
什么是 object :
object 是一个独立的 name space 。 object 的 name space 用 dictionary 表示。
obj.__dict__ 表示一个 object 的 name space 。
其中
obj.__dict__.keys() 表示所有 name 的 list ,
obj.__dict__[name] 表示 name 所指的 object 。
name 分为两种,一种是 unqualified name ,一种是 qualified name 。
带有 attribute 的 name 就是 qualified name , 如 obj.attr 。
其中前面的部分是 object name ,后面部分是 object 的 attribute 。
不带有 attribute 的 name 就是 qualified name , 如 obj 。
什么是 scope :
是所有可见的 unqualified name 的组成的 name space 。
他是一个静态定义,动态使用的概念。不同运行时刻,有不同的 unqualified name
是可见的。
什么是 module :
module 是一个独立的 name space 。其中包含很多定义好的 name 和 object 。
python(1)
这些 object 通常是 class object , function object 。
什么是 package :
module 是一个独立的 name space 。其中包含很多定义好的 name 和 object 。
这些 object 通常是 module object 。
什么是 function :
function 是一个用 def 语句创建的可调用对象。
什么是 nest function:
nest function 指在 function 内部定义的 function 对象。
outer funciton 是指定义 function 的 function 。
inter function 是指被定义的 function 。
outer function 和 inner function 没有本质的区别,是平等的关系,
outer function 的 local name space 在 inner function 中是不可见的。
inner function 是 outer function 内部的创建的一个 object ,
指向 inner function 的 name 存在于 outer function 的 local name space 。
outer function 可以通过返回值等机制,把 inner function 暴露给调用者。
什么是 class object:
class 是一个 object ,也叫做 class object 。
用于生成 object 。
什么是 object instance :
由 class object 生成的 object 就是这个 class object 的 class instance 。
class object 和 class instance 的区别和联系:
他们都是 objecct ,从所有 object 共有的特性来说,他们是一样的。
class instance 是由 class object 创建的。如果 clsInstance 是 clsObject 的一
个
class instance ,那么 clsInstance.__class__ 和 clsObject 是同一个 object 。
在搜索一个 clsInstance 的 attribute 的时候,若在 clsInstance 的 name space
中找不到,
就会搜索 clsInstance.__class__ 的 name space 。
什么是 attribute :
python(1)
attribute 是 qualified name 中的 ``.'' 后面的 name 。
attribute 是按照以下规则搜索而得到的第一个 name 。
1. 搜索 object 的 name space
2. 如果 object 是一个 class instance ,搜索 object 所属的 class object 的
name space 。
3. 如果 object 是一个 class object ,深度优先搜索 object 所有祖先的 name s
pace 。
4. 如果 object 有 __getattr__ 函数,调用这个函数,使用返回结果。
按照下列伪代码描述的算法
def search_name(obj,name):
#1. 搜索 object 的 name space
if name in obj.__dict__:
return obj.__dict__[name]
else:
try:
# 2. 如果 object 是一个 class instance ,
# 搜索 object 所属的 class object 的 name space 。
return search_class(obj.__class__,name)
except AttributeError:
if obj.has_attr(__getattr__):
#4.如果 object 有 __getattr__ 函数,调用这个函数,使用返回
结果
return obj.__getattr__(name)
else:
raise AttributeException, "%s not found"%name
def search_class(clsobj)
# 3.如果 object 是一个 class object ,深度优先搜索
# object 所有祖先的 name space 。
if len(clsobj.__bases) == 0:
if clsobj.has_attr(__getattr__):
return clsobj.__getattr__(self
raise AttributeError, "%s not found"%name
for base in clsobj.__bases__:
return search_name(base,name)
什么是 property :
class object 和 class instance 中的纪录数据的 attribute 。
什么是 methord
class object 或者 class instance 中的 function attribute 。
剩余11页未读,继续阅读
资源评论
是空空呀
- 粉丝: 168
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功