学习了一天的python,想对python中的类-class,对象,方法,属性等概念做个简单的总结。
Objects are key to understanding object-oriented technology. Look around right now and you'll find many examples of real-world objects: your dog, your desk, your television set, your bicycle.
对象的概念在面向对象编程的技术中非常关键。观察周围的环境,你会发现很多现实世界中的例子:你的狗,你的桌子,你的电视,你的自行车
引自:http://docs.oracle.com/javase/tutorial/java/concepts/object.html
现实世界中的对象共享2个特点:状态和行为
比如狗的状态(名字,颜色,品种,饥饿),行为(狗吠,摇尾巴)
自行车也有状态(现在的传动装置,现在的脚踏板的节奏,现在的速度),行为(刹闸,改变脚踏板的行为)
去识别现实世界中的对象的状态和行为能够帮助我们非常好的理解面向对象编程的思想
现在花一点时间去观察现实世界中的对象。对于你看到的每一个对象,都要问自己2个问题:“这个对象可能处在什么样的状态”,他能执行什么可能的行为。如果你这么做了,你就会注意到现实世界中的对象可能会有所不同,你桌子上的台灯可能只有2个可能的状态(开和关),2个可能的行为(打开和关闭)
但是你桌子上面的收音机可能会有额外的状态和行为,状态(开,关,现在的音量,现在的电台),行为(打开,关闭,调大音量,降低音量,搜索,浏览,tune)
这些真实世界中的观察结果都被传送到面向对象编程的程序中。
软件中的“object”和真实世界中的对象的概念非常相似:他们也是由state和related behavior组成。
一个对象在field(变量)中存储他的state,之后通过他的方法methods(functions)来暴露出他的行为。方法操作内部的状态,充当object-to-object 交流的首选机制
通过对象的方法,隐藏了内部的状态和执行了相关的操作,这就是传说中的数据封装--------- 一个面向对象的基本原理
Consider a bike, 比如
A bicycle modeled as a software object.
通过归因于state(现在的速度,现在的脚踏节奏)和提供改变状态的方法,对象仍旧受控于外部世界怎样使用它。
比如,如果这个自行车有6个齿轮,如果输入的值小于1或者大于6,一个改变齿轮的方法可能被拒绝。
把代码打包到单个对象中,提供了很多好处,包括:
所以什么是对象呢,在python中一切都可以是对象,只要你指明他可能出现的状态,和操控状态的方法
Python 中的对象是 C 语言中结构体在堆上申请的一片内存区域。
In the real world, you'll often find many individual objects all of the same kind. There may be thousands of other bicycles in existence, all of the same make and model. Each bicycle was built from the same set of blueprints and therefore contains the same components. In object-oriented terms, we say that your bicycle is an instance of theclass of objects known as bicycles. A class is the blueprint from which individual objects are created.
The following Bicycle class is one possible implementation of a bicycle:
在现实世界中,你通常情况下会需要去寻找很多单独的对象但是他们的种类确是相同的。 现在可能有成千上万的自行车存在,all of the same make and model.这个mode 简化为 自行车(对象)---蓝图(类)---你的自行车。
下文参考此链接:http://blog.chinaunix.net/uid-15174104-id-3826306.html
言归正传,今天我们要了解的是Python的中对象(Objects)。Python的官方文档是这样描述Python中的对象的。
Objects are Python’s abstraction for data. All data in a Python program is representedby objects
or by relations between objects.
python中的对象是对数据的描述。python程序中的所有data都可以代表对象(所以我觉得是不是此时
Python把所有的一切都认为是对象(Objects), 这就是那句著名的话 "Everything is an object in Python"。实际上,
对象(Objects)是Python对于数据的一种抽象。在Python程序中,所有的数据都是通过对象或者对象之间的关系
来表示的。 Python中的对象有由三个部分组成: 标示(identity),类型(type)和值(value)。
标示(identity)
每一个对象都是唯一的。我们可以用对象的标示(identity)来比较两个对象,即使用 is语句。我们可以把对象的标
示(identity)看做是对象在内存中的地址。当一个对象一旦被创建,它的标示(identity)将不再改变直到这个对象
消失。当对象消失后,它的标示(identity)将会被释放,并可能被未来的一个对象来使用。所以,对象的标示是唯一
的,不变的,并存在于对象的整个生命周期。为了更形象的说明什么是对象的标示(identity),我们可以用Python中
内建函数id()来返回一个对象的标示(identity)。
说的直白些,对象的标示(identity)其实就是一个整数,它是对象在内存中的地址。
- 类型(type)
对象的类型(type)则决定了对象支持什么样的操作和运算,可以被赋予什么样的值。 内建函数type()返回的
是当前所给对象的类型。同对象的标示(identity)一样,类型(type)也是不可变的【1】 。
对象的是值本身也是一个对象,且它和对象有同样的的类型(type)。有些对象的值是可变的,有些对象的值
- 值(value)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |