python定义一个学生类_Python面向对象编程(1)类和实例

Python面向对象编程(1)类和实例【转载】

面向过程和面向对象编程

面向过程(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本身则是一个类。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值