`
jimichan
  • 浏览: 278238 次
  • 性别: 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的基本概念.docx

    Python的基本概念全文共3页,当前为第1页。Python的基本概念全文共3页,当前为第1页。Python的基本概念 Python的基本概念全文共3页,当前为第1页。 Python的基本概念全文共3页,当前为第1页。 1、Python语言简介 1.1...

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

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

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

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

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

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

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

    面向对象基本概念 面向对象基本概念 我们之前学习的编程方式就是 面向过程 面向过程 的 面相过程 面相过程 和 面相对象 面相对象,是两种不同的 编程方式 编程方式 对比 面向过程 面向过程 的特点,可以更好地了解...

    python面向对象

    如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。 接下来我们先来简单的...

    python面试题目-python-python经典面试题目-Python语言的基本概念-常用的功能和特性-编程范式-面试题目

    什么是Python中的迭代器(Iterator)和可迭代对象(Iterable)? Python中如何处理异常(Exception)?列举一些常见的异常类型。 什么是Python中的命名空间(Namespace)和作用域(Scope)? Python中的深拷贝和...

    006-Ptyhon简介-06-Python的特点和面相对象基本概念.mp4

    Python7天速成

    Python编程入门经典

    作者james payne从python语言最基本的概念入手,重点介绍了python 2.6和3.1这两个版本的实际应用。通过对一些现有的python程序进行深入分析,读者能够快速上手。《python编程入门经典》涵盖的主题从字符串、列表和...

    python3-对象与实例.docx

    在Python3中,对象和实例是面向对象编程中最基本的概念之一,本文将详细介绍Python3中的对象和实例。 对象是Python3中最基本的概念之一,它是一个具有属性和方法的数据结构。在Python3中,一切皆为对象,包括数字、...

    核桃编程python课程体系.docx

    这部分课程旨在帮助学习者熟悉Python的基本概念,并能够使用这些概念解决简单的问题。例如,学习者可以通过课程学习如何使用循环结构解决一个简单的数组求和问题,或者学习如何使用条件语句构建一个简单的游戏。 ...

    中职python教案.docx

    一、课前预热(5分钟) 向学生介绍Python编程语言的基本概念、应用领域以及优势,让学生了解Python编程语言的意义和价值。 二、基础教学(40分钟) 1. 讲解Python编程语言的基本语法和特点,重点介绍Python语言的...

    简述Python中的面向对象编程的概念

    OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块...

    Python3入门视频教程百度网盘.pdf

    Python3⼊门视频教程百度⽹盘 视频内容: 第1章 Python⼊门导学 第2章 Python环境安装 第3章 理解什么是写代码与Python的基本类型 第4章 Python中表⽰"组"的概念与定义 第5章 变量与运算符 第6章 分⽀、循环、条件与...

    Python语言程序设计教程 北理工Python课程W081602-图形对象概念 共11页.pdf

    3-1-Python中类型的概念 3-2-数字类型 3-3-字符串类型 3-4-字符串的操作 3-5-元组类型 3-6-列表类型及操作 3-7-math库和random库 3-8-π的计算 4-1-1-程序基本结构 4-1-2-简单分支 4-1-3-多分支 4-1-4-异常处理设计 ...

    Python基础编程与实践教案第二十六课时Python面向对象编程(下).doc

    使学生在理解基本概念和语法的基础上,能在编程实践中灵活使用Python面向对象编 程。 2. 教学内容 本课时讲授内容为第八章 《Python面向对象编程》的第四节继承的5小节和第五节的1小节: 1. 使用继承 2. 抽象基类 3....

    python24期全套视频编程课程百度网盘

    2. 面向对象编程:介绍Python的面向对象编程思想、类、对象、继承、多态等概念。 3. 文件操作:介绍Python的文件操作、读写文件、文件路径等知识。 4. 正则表达式:介绍正则表达式的基本语法、匹配模式、替换等...

    python程序设计基础教程ppt-Python程序设计基础教程.pdf

    《Python程序设计基础教程》 共分为16章,主要内容包括:Python简介、Python环境搭建、函数、模块、⽂件操作、字符串与正则表达式、⾯向对象编程、异常处 理、Python基本概念、Python控制结构、Python多线程与多进程...

Global site tag (gtag.js) - Google Analytics