Python语言之Python面向对象编程(1)类和实例
小标 2018-08-09 来源 : 阅读 1259 评论 0

摘要:本文主要向大家介绍了Python语言之Python面向对象编程(1)类和实例,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言之Python面向对象编程(1)类和实例,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

面向过程和面向对象编程
面向过程(Procedure Oriented Programming,POP)和 面向对象编程(Object Oriented Programming,OOP) 是两种主要的程序设计思想。这里简单通俗地讲一下两者的区别:
编程的目的:为了去解决一个问题,或者处理一件事情,比如编写一个程序自动处理学生的信息,或者编写一个程序可以自动做北京烤鸭。
面向过程编程:按顺序编写一系列程序集合,然后执行,得到想要的结果。比如处理学生信息时:先编写一条代码获取学生性别信息,然后再获取成绩信息,最后打印出该学生的姓名及成绩,对于每一个学生,把前面的代码执行一遍就可以打印出相应的信息。
对于做北京烤鸭也是类似,第一步洗鸭子,接着烤鸭子,最后切了吃掉,吃完了还不饱 ,那就再执行一次,再吃一只。按照我们写好的命令集合顺序执行,之后得到想要的结果,这就是面向过程的编程,其注重的是编写整个处理的流程。当然为了简化程序设计,面向过程运用函数把整个过程切分为多个子函数降低系统的复杂度,但它依然是面向过程编程。
面向对象编程:面向对象的编程把计算机程序视为一组对象的集合。比如,处理学生信息时,面向对象的编程并不是想着怎么编写程序去处理每个学生的信息,而是把所有这些学生当作一个类(Class),同时把处理类的程序也当作类的一部分,即所有的学生构成一个类,类有自己的属性和方法,比如姓名和成绩都是属性,而打印成绩就是方法,而每一个具体的学生只不过是类的一个实例/对象。这样不仅可以使代码更简洁,也很容易修改属性和方法。
举个例子说明具体的区别:
面向过程
std1 = { 'name': 'Michael', 'score': 98 }
std2 = { 'name': 'Bob', 'score': 81 }

# 处理学生信息可以通过函数实现,比如打印学生的成绩:

def print_core(std):
    print('%s : %s'%(std['name'],std['score']))

print_core(std1)
print_core(std2)
Michael : 98
Bob : 81
面向对象
class Student(object):
    def __init__(self,name,score):
        self.name = name
        self.score = score
    def print_score(self):
        print('%s : %s'%(self.name,self.score))

amy = Student('amy',120)
jack = Student('jack',108)

amy.print_score()
jack.print_score()
amy : 120
jack : 108
类与实例
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,是一个统称,泛指所有的学生,而实例是根据类创建出来的一个具体的“对象”,比如张三、李四,每个对象都拥有相同的方法,但各自的数据/属性可能不同。
以Student类为例,在Python中,定义类是通过class关键字:
class Student(object):
    pass
class 后面紧接着是类名,即 Student,类名通常是大写开头的单词,通常采用大驼峰命名法,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念后面再讲,通常,如果没有合适的继承类,就使用 object 类,这是所有类最终都会继承的类。
定义好了 Student 类,就可以根据 Student 类创建出 Student 的实例,创建实例是通过类名+()实现的:
amy = Student()
print(amy)
print(Student)
<__main__.student object="" at="" 0x000001e75252cbe0="">

可以看到,变量 amy 指向的就是一个 Student 的实例,后面的 0x000001E75252CBE0 是内存地址,每个object的地址都不一样,而Student本身则是一个类。

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved