`
jimichan
  • 浏览: 280379 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

python 对象基本概念

阅读更多

Python Objects

<!-- yui-g -->

December 12, 2000 | Fredrik Lundh, 翻译 jimi.chan

 

介绍

重新认识python的一切皆对象的概念

Objects 

所有的ptyhon对象都包含如下几个属性:

  • 一个唯一标识符 (一个整数, 可以通过 id(x) 返回这个整数 )
  • 类型(type) (可以通过 type(x) 得到)
  • 其他一些内容

你不能改变一个对象的 唯一标识 和 它的类型

 

一些对象允许你修改其他属性。但也有一些对象是不让你改变任何东西的。

一个对象的类型是由一个叫 type的对象表示的,这个type对象知道所有关于该对象的事情,包括内存位置已经具有哪些方法等等。

 

(Update: In CPython 2.2 and later, you can change the type under some rather limited circumstances .)


关于对象更多介绍

对象往往包含:

  • 一个或多个方法(有它的type对象提供)
  • 一个或多个Name

一些对象可以通过它的方法来修改其内容。而一些对象仅仅只允许通过方法来访问其内容。更有一些对象连一个方法都没有。

 

尽管对象有方法,但是你还是不能修改类型和标识。想属性赋值和对象引用只不过是语法糖而已。

 

Names 

名字和上面介绍的很大的区别在于,它们不是对象的属性 ,而且连对象自己也不知道它们自己叫什么名字

 

一个对象可以拥有任意个数量的名字或者一个都没有。Name 是存放在命名空间(namespaces)里面的(比如module namespace, 一个instance namespace命名空间,一个function's local 命名空间)

 

命名空间一个键值对Dictionaries,key可以是一写 name ,object reference 。

 

当你调用一个函数或一个方法的时候,他的命令空间就开始使用你调用这个它的参数列表来初始化了。

When you call a function or a method, its namespace is initialized with the arguments you call it with (the names are taken from the function’s argument list, the objects are those you pass in).

赋值 

赋值语句只是修改了命名空间,而不对对象本省

换句话说,

foo= 10

意味着你在local 命名空间里面增加了一个 名字叫 “foo”名字,而且让他指向了值为10的整数对象。

如果该名字已经存在了,那么赋值语句将替换原来的名字(就是命令空间的字典里面又put了一个key,替换了原来的):

foo= 10
foo= 20

就意味着你第一次增加了一个名为“foo”到local命名空间里面去,而且让他指向一个数值为10的整数对象。当执行对二个语句时,python所做的是在命名空间里面替换了‘foo’,并使之指向了数值为10的整数对象。原来的10这个整数对象并没有被改变,何况它也不关心这个变化。

对照:如果你这样写:

name = []
name.append(1)
你第一次是修改了命名空间,而第二句并没有。

name.attr 和 name[index] 只是个方法调用的语法糖而已。就相当于__setattr__和 __getattr__。第二个对应的是 __setitem__和 __getitem__

 

 

1
0
分享到:
评论

相关推荐

    Python面向对象基本概念PPT课件.ppt

    Python面向对象基本概念PPT课件.ppt

    Python面向对象基本概念PPT教案.pptx

    面向对象编程是Python中一种重要的编程范式,它基于现实生活中的对象模型,使得代码更加模块化、可维护和易于理解。面向对象编程的核心概念包括对象、类、...理解并熟练掌握这些基本概念对于Python程序员来说至关重要。

    python面向对象

    在Python中,面向对象有三大基本概念:类(Class)、对象(Object)和继承(Inheritance)。首先,类是对象的蓝图,定义了一组属性(数据成员)和方法(成员函数),这些属性和方法共同构成了对象的特征和行为。例如...

    Python 面向对象(基础篇).pdf

    * 然后学习Python面向对象编程的基本概念,例如类、对象、继承、多态等。 * 最后学习Python面向对象编程的高级知识,例如设计模式、异常处理、文件操作等。 Python面向对象编程是一种强大的编程思想和方法,它可以...

    Python的特点和面相对象基本概念

    Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被...

    面向对象编程基础_python面向对象_python教程_

    以上就是Python面向对象编程的基本概念和特性。掌握这些基础知识,能帮助你更好地理解和编写Python程序,尤其在处理复杂逻辑和大型项目时,面向对象编程的优势会更加明显。在实际应用中,不断实践和探索,才能真正...

    python面向对象概念及练习题.doc

    通过理解和熟练运用这些概念,你可以更好地设计和实现面向对象的Python程序,解决复杂的问题。在练习题中,你可能会遇到创建类、定义方法、实例化对象以及使用成员变量和方法的题目,这些都是检验你对面向对象理解...

    Python 面向对象编程

    在 Python 中,逻辑行和物理行是两个不同的概念。物理行是指在编辑器中实际看到的一行,而逻辑行是指一条 Python 语句。在 Python 中,一个物理行通常只包含一个逻辑行,以便于代码的阅读和维护。如果需要在一个物理...

    Python实验一 面向对象程序设计实验.doc

    面向对象程序设计是 Python 中的一种重要编程范式,它基于类和对象的概念,强调数据封装、继承和多态性。本实验旨在让学生深入理解和实践面向对象编程的基本原理和技巧。 首先,实验要求学生掌握类的定义。在 ...

    Python的类型和对象

    学习Python的类型和对象不仅包括理解它们的基本概念,还包括熟悉如何利用这些概念构建和操作复杂的对象结构。通过深入学习,你可以更好地利用Python的灵活性和强大的面向对象特性来解决实际问题。

    Python类型和对象(20210930180213).pdf

    此外,文档还涉及了Python对象的内存表示,即每个对象在主内存中的确切位置可以通过调用`id()`函数找到。这为那些喜欢深入了解如何实现细节而不是仅仅了解抽象概念的人提供了一个了解内存布局的途径。 文档提到了...

    Python类型和对象.pdf

    基本概念 在 Python 中,每个对象都是一个实体的体现,可以通过以下特征来确定一个对象: * 有标识名字(i.e. 给定两个名字我们可以判断他们是否指向同一个对象) * 有值 - 对象可能包含一堆属性(i.e. 比如可以...

    python面向对象项目案例一.rar

    "飞机大战"是一个经典的Python面向对象编程项目,通过该项目,我们可以深入理解OOP的核心概念,如类(Class)、对象(Object)、继承(Inheritance)、封装(Encapsulation)和多态(Polymorphism)。 在这个名为...

    Python面向对象详细教程

    根据给定的信息,本文将详细解析面向对象编程在Python中的应用与实现,涵盖Python的基本特性、类的创建、访问限制、继承与多态的概念及其应用、动态语言与静态语言的区别,以及如何获取对象信息等内容。 ### 一、...

    python对象比较、拷贝、参数传递.zip

    一、Python对象比较 Python中的对象比较主要涉及到对象的相等性(equality)和排序(ordering)。Python支持基本的数据类型如整型、浮点型、字符串等之间的比较,同时也支持自定义类的对象比较。默认情况下,Python...

    Python入门教程完整版(懂中文就能学会)资料面向对象讲义1.pdf

    面向对象的基本概念包括类(Class)和对象(Object)。类是对象的模板或蓝图,它定义了一组具有相同特征(属性)和行为(方法)的对象。属性代表对象的状态,而方法代表对象的行为。例如,我们可以定义一个“Person...

    python面向对象版学员管理系统.pdf

    综上所述,该文件可能详细阐述了如何利用Python的面向对象编程特性来设计和实现一个学员管理系统,涉及面向对象编程的核心概念以及实际应用中的数据管理、异常处理和数据持久化等知识点。由于文档内容的具体细节并未...

    11-Python-函数基本概念和示例

    11_Python_函数基本概念和示例 文章配套的 jupyter notebook 源码资源,可以直接运行使用,欢迎下载练习。 目录如下: 函数 定义函数 调用函数 参数传递 示例 返回值 文档字符串 函数是对象 附件

Global site tag (gtag.js) - Google Analytics