前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础知识:类,对象,模块三者的区别

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

作者头像
戈贝尔光和热
发布2018-12-27 15:08:38
1.3K0
发布2018-12-27 15:08:38
举报
文章被收录于专栏:HUBU生信HUBU生信

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

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

解释一下:

面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法--结构化程序设计所不能解决的代码重用问题。 "面向过程"(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类 而python就是典型面向对象的编程语言。

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

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

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

1.python中类的定义为:

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

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

代码语言:javascript
复制
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)同时将参数(也就是属性)传到内部。

上面代码的运行结果是:

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

3.继承

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

继承的声明是:

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

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

代码语言:javascript
复制
下面我来进行继承操作:

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

代码语言:javascript
复制
输出结果如下:

![](https://pic1.zhimg.com/80/v2-88db2c36f918c3e4c63814195a7aac58_hd.jpg)
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() ``` 输出如下:

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

全文结束,欢迎在评论区讨论~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档