python基础知识:类,对象,模块三者的区别

长话短说,我线代作业还没有写呢。

有点编程语言知识的朋友应该知道,编程语言有“面向对象”和“面向过程”两种。

解释一下:

面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法--结构化程序设计所不能解决的代码重用问题。

"面向过程"(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类

而python就是典型面向对象的编程语言。

什么是对象? 对象简单的来说就是一切具体事物,比如一个杯子,它是一个对象;一个人,也是对象;一台电脑也是一个对象。仔细想一下,每个对象,是不是都是由它的属性和行为构成的呢? 比如一个具体的人,他是性别是男,身高180,体重60,不戴眼镜,诸如此类,就是一个对象的属性。而“这个人,他正在操场跑步”,他的这个动作,也就是对象的行为。

什么是类? 类就是具有相同属性和行为的对象的集合。 比如,每个人都有性别,身高,体重,而他们都在做不同的事情。这里的“事情”,其实就可以看成一个容器,只是每个人的内容不同罢了。(想想人类的意思,我想大家应该能懂的)

由此对应到python中的类来看,python中,每类都有自己的“属性”和方法,属性就是变量,方法则是函数。而这里的”属性“则不能具体,因为只有对象才有自己的属性。 估计说的有点绕,我们直接看实例:

1.python中类的定义为:

class 类名:
....

值得注意的是,这里的类名必须是大写字母开头,(为了和函数做区别)

2.下面,我们给人定义一个类,每个人都有,名字,性别,年龄,所以我们可以这样写:

class People:
def __init__(self,name,gender,age):
self.name=name
self.gender=gender
self.age=age
def behavior(self):
print("我的名字:{} 性别:{} 年龄:{}".format(self.name,self.gender,self.age))
p=People("小徐子","女",20)
p.behavior()

_init_是一种魔法方法,它的作用是初始化实例对象p,(self函数代表p)同时将参数(也就是属性)传到内部。

上面代码的运行结果是:

python基础知识:类,对象,模块三者的区别

现在,不知道大家有没有对类由一个感性的认识了呢?

3.继承

类里面有一个很大的特点,就是能够继承父类。

class 类名(父类名):
....

举个例子,上面只是对人与其他事物进行了一个分别,下面,我们对人进行细分:女人和男人。 很显然,不管是女人还是男人,都有人的特点,而女人又有自己独特的特点,比如:长头发(举个例子而已,大家不要细究),那么对女人这一类应该怎么样定义呢?

class Woman(People):
def hair(self):
print("我有长头发,我很美")

下面我来进行继承操作:

p=Woman("小徐子","女",20)
p.behavior()
p.hair()

输出结果如下:

python基础知识:类,对象,模块三者的区别

4.super方法

super之所以是super的原因,就在于他能够继承父类的初始化定义。举个例子:

class People:
def __init__(self,name,gender,age):
self.name=name
self.gender=gender
self.age=age
def behavior(self):
print("我的名字:{} 性别:{} 年龄:{}".format(self.name,self.gender,self.age))
class Woman(People):
def __init__(self,name,gender,age,chair):
super().__init__(name,gender,age)/*super继承*/
self.chair="长头发"
def hair(self):
print("我爱{}".format(self.name))
p=Woman("小徐子","女",18,"长头发")
p.behavior()
p.hair()

输出如下:

python基础知识:类,对象,模块三者的区别


码字有点累了,模块的知识以后再讲吧


分享到:


相關文章: