【Python 第47课】 面向对象(1)

我们之前已经写了不少小程序,都是按照功能需求的顺序来设计程序。这种被称为“面向过程”的编程。

还有一种程序设计的方法,把数据和对数据的操作用一种叫做“对象”的东西包裹起来。这种被成为“面向对象”的编程。这种方法更适合较大型的程序开发。

面向对象编程最主要的两个概念就是:类(class)和对象(object)

类是一种抽象的类型,而对象是这种类型的实例。

举个现实的例子:

“笔”作为一个抽象的概念,可以被看成是一个类。而一支实实在在的笔,则是“笔”这种类型的对象。

一个类可以有属于它的函数,这种函数被称为类的“方法”。

一个类/对象可以有属于它的变量,这种变量被称作“域”。

域根据所属不同,又分别被称作“类变量”和“实例变量”。

继续笔的例子。一个笔有书写的功能,所以“书写”就是笔这个类的一种方法。

每支笔有自己的颜色,“颜色”就是某支笔的域,也是这支笔的实例变量。

而关于“类变量”,我们假设有一种限量版钢笔,我们为这种笔创建一种类。而这种笔的“产量”就可以看做这种笔的类变量。因为这个域不属于某一支笔,而是这种类型的笔的共有属性。

域和方法被合称为类的属性。

python是一种高度面向对象的语言,它其中的所有东西其实都是对象。所以我们之前也一直在使用着对象。看如下的例子:

s = 'how are you'

#s被赋值后就是一个字符串类型的对象

l = s.split()

#split是字符串的方法,这个方法返回一个list类型的对象

#l是一个list类型的对象

通过dir()方法可以查看一个类/变量的所有属性:

dir(s)

dir(list)

下节课,我们来自己创建一个类。

面向零基础初学者的编程课

每天5分钟,轻松学编程

回复『 p 』查看课程目录

回复『 t 』查看习题列表

原文发布于微信公众号 - Crossin的编程教室(crossincode)

原文发表时间:2013-08-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏较真的前端

关于数组的前端面试题,你是否都能答对?

40930
来自专栏racaljk

C++11新语法糖之尾置返回类型

C++11的尾置返回类型初衷是为了方便复杂函数的声明和定义,但是当复杂度稍微提升一些的时候很明显能注意到这种设计的作用微乎其微.

17850
来自专栏程序员互动联盟

【编程基础】Java的接口和抽象类

对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人...

30370
来自专栏java一日一条

Java有值类型吗?

有人看了我之前的文章『Swift 语言的设计错误』,问我:“你说 Java 只有引用类型(reference type),但是根据 Java 的官方文档,Jav...

14120
来自专栏架构师小秘圈

深入理解Java的接口和抽象类

架构技术干货第一时间送达! 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方...

34650
来自专栏PHP实战技术

解构赋值,你不能不懂!

相信大家不难从上述的几段代码案例总结出来解构赋值的规律,我总结到如下几点: 1、解构主体为数组或者对象。 2、解构源必须具备Iterator接口或者经过转换之后...

947300
来自专栏带你撸出一手好代码

Java元组的使用

元组在计算机领域有着特殊的意义,这个名字听起来似乎有些陌生, 平时在写代码也基本没什么应用场景, 然而, 出人意料的是, 元组跟程序设计密切相关, 可能有的同学...

53780
来自专栏noteless

[五]java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用

java8 流相关的操作中,我们把它理解 "累加器",之所以加引号是因为他并不仅仅是加法

34030
来自专栏苦逼的码农

从0打卡leetcode之day8--反转整数

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

14940
来自专栏Java帮帮-微信公众号-技术文章全总结

【Java提高二】三大特性-继承

【Java提高】三大特性-继承 在《Think in java》中有这样一句话:复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够...

35790

扫码关注云+社区

领取腾讯云代金券