Python 面向对象

场景案例
在***班级要求两名新同学Jack和Harry分别介绍自己的名字和来自哪座城市,然后分别说一句班级口号:“Hello,51zxw”最终控制台打印效果如下:
在这里插入图片描述

结合前面所学的基础知识来实现:

name='Jack'
city='Beijing'
print("My name is %s and come from %s" %(name,city))
print("hello,51zxw")

name='Harry'
city='Shanghai'
print("My nama is %s and come from %s " %(name,city))
print("hello,51zxw")

思考几个问题?
1.如果老师要求全班50个同学依次以上面形式自我介绍,该怎么办?
2.每个同学介绍自己姓名和来自城市后,再顺便介绍自己的年龄?
3.每个同学自我介绍的代码有何相同特征?

类与对象
现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如人类、汽车、动物、水果这些是一个抽象的类别,我们所见到的实物都是这些类的具体存在,因此类是对象的抽象集合,对象是类的具体表现。现实世界是万物皆对象。

属性:地域、肤色、国家…
功能:走路、思考、饮食、繁衍…
具体对象:中国人、非洲人…

学生
属性:姓名、学号、城市、年龄…
功能:听、说、读、写…
具体对象:Jack同学、Harry同学…
面向对象的关键要素:

类(Class)
用来描述具有相同属性和方法的对象的集合,它定义了该对象集合中的每个对象所共有的属性和方法。

数据成员
类的不同属性数据。

对象
对象是类的实例。

方法
类中定义的函数,实现相关的功能。

面向对象编程
简称OOP(Object Oriented Programming),是一种程序设计思想,OOP把对象作为程序的基本单元,一个对对象包含了数据和操作数据的函数(方法)

面向对象的设计思想是从自然界中来的,因为在自然界中,类(Class)和实例(Instance)的概念是很自然的。Class是一种抽象概念,比如我们定义的Student类,是指学生这个概念,而实例(Instance)则是一个个体的Studeng对象。

Python是一门面向对象的语言,在Python中创建一个类别和对象是很容易的。

三大特性
封装
继承
多态

定义类
Class student(object):
类体

Class是类的定义的关键词,class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(Object),表示该类是丛哪个类继承下来的。通常如果没有明确的继承类,就使用object类,括号内一般为空默认就是继承Object类。这是所有类最终都会继承的类,也就是基类。

属性初始化
由于类可以起到模板的作用,因此,可以在创建实例对象的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的_init_方法,如:在创建Student实例的时候,就把name,city等属性绑上去:

class Student():
    def __init__(self,name,city):
        self.name=name
        self.city=city
        print("My name is %s and come form %s" %(name,city))

init_方法的第一个参数永远是self,表示创建的实例本身,因此,在_init_方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。有了_inif 方法,在创建实例的时候,就不能传入空的参数了。必须传入与_init_方法匹配的参数。但self不需要传。Python解释器自己会把实例传进去。

定义方法
类的方法除了第一个参数是self外,其他和普通函数一样,要调用一个方法,只需要在实例变量上直接调用。

class Student():
    def __init__(self,name,city):
        self.name=name
        self.city=city
        print("My name is %s and come form %s" %(name,city))

    def talk(self):
        print("Hello 51zxw")
#生成实例对象
stu1=Student('Jack','Beijing')
stu1.talk()

stu2=Student('Harry','Shanghai')
stu2.talk()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值