查看原文
其他

Python面向对象编程从零开始(1)——从没对象到有对象

2017-06-04 王大伟 Python爱好者社区

(点击上方Python爱好者社区,可快速关注)

作者:王大伟

博客专栏:https://www.hellobi.com/u/wangdawei/articles

Python爱好者社区  唯一小编  

前言

最近在写关于自然语言处理的文章,but,没对象啊,这可是个大问题。

 

莫慌,看完本文,你就能有对象了。

  

人生苦短,我选Python,其他空余的时间可以和对象一起玩耍。。。(此处省略n字)

对象和类

当然,此对象非彼对象。

360百科对对象的描述如下:

还记得小时候玩过的印章么,hellokitty那种印章:

 

360百科我表示看不懂,那就举个栗子。

如果对象是一个具体的存在,而类是产生对象的模版(为了帮助理解,描述的可能不是那么准确)

就像印章是类,对象则是印出来的图形。

就像化妆品是类,则CHANEL、LancômeEstee Lauder、Christian Dior等是对象(我也不知道我怎么会知道这些。。。)。

所以类是对对象的抽象。

面向对象和面向过程

我们一开始,例如大学学的C语言,是面向过程的,总的执行流程是顺序的,任何功能等的实现都是自己要写代码的。

现在说的面向对象和之前熟悉的面向过程可用下面的例子解释:

假如你想吃烤鱼:

 

面向过程:自己动手,从买鱼,洗鱼洗菜,烤鱼,加调料,装入盘子,端上桌,吃!!!(还要洗碗)

       while(没吃腻):

体重++

面向对象:来到烤鱼店,点菜单,吃!!!,结账走人。

      做人做要紧开心~


所以可以总结如下:

面向过程:自己靠双手按照流程解决问题。

面向对象:找个对象,让她做,自己轻松了。

两者都是解决问题的一种思路,但这个总结总是感觉哪里不对。

 

类的描述:类名,属性,方法

class 类名(大驼峰命名法):
   #属性
   
   #方法
   def xxx():
       pass

类名:类的名字

属性:类的属性

方法:类的方法

这解释。。。【掀桌

 

类的属性可以认为是在类里对象里定义的变量。

这里的方法,注意到是def 定义的,可以理解为函数!!!

定义一个类

class Car:
   
   def drive(selt):
       print('我正在开车')
   
   def turnover(self):
       print('翻车了')

class后面定义的就是一个名为Car的类。

def定义的是类的方法(理解为类里的函数),这里定义了两个方法,开车和翻车。

 

创建一个对象

年轻人,听说你没对象?

没事,我们自己创建一个。

#创建一个对象
xiao_jie_jie=Car()

xiao_jie_jie.drive()#调用xiao_jie_jie指向的对象的方法
xiao_jie_jie.turnover()

运行结果:

看来小姐姐翻车了。。。

类的三要素集合

类的名称(Car),方法(开车,翻车)都有了,还差属性。

class Car:
    
    def drive(selt):
        print('我正在开车')
    
    def turnover(self):
        print('翻车了')
        
#创建一个对象
xiao_jie_jie=Car()
xiao_jie_jie.drive()#调用xiao_jie_jie指向的对象的方法
xiao_jie_jie.turnover()

#添加属性,属性就是变量
xiao_jie_jie.name = '王梦瑶'
xiao_jie_jie.age = 20
print('%s的年龄是:%d'%(xiao_jie_jie.name,xiao_jie_jie.age))

这里小姐姐的名字纯属虚构(如有雷同,别喷我,你可以认为这是缘分啊~~~)

这里属性有name和age,或许可以有那啥???算了,怕被河蟹。

运行一下程序

是不是发现程序竟然可以这样写,很好玩吧,之后会连载的啦~想知道女司机的后续故事么,请持续关注!



说到做到,新福利来啦:

关注公众号,在公众号菜单点击"免费听课",即可参与活动免费听19.9元收费课程,当然,壕大大可以直接购买听课啦。

壕大大入口:https://edu.hellobi.com/course/186,点击文末阅读原文可购买

本次主打课程:

Hellobi Live | 6月6日 自然语言处理之-基于深度学习技术的聊天机器人实现

课程名称:

自然语言处理之-基于深度学习技术的聊天机器人实现

课程背景:

NLP是一个很大的领域,自成一系,本次课程通过一个企业级案例(聊天机器人)带领大家从了解项目场景开始一步步搭建,最后演示聊天机器人实例。通过本课程的学习,让你一举打开NLP的大门。

主讲老师:

Kenny,计算机硕士,曾在某上市公司和世界500强公司分别担任智能算法工程师,高级算法挖掘工程师,具有多年的大数据项目开发实战经验,坚持在代码开发的一线,设计和实现了多个大数据项目。

Kenny博客专栏:https://ask.hellobi.com/blog/KennySayHi

直播时间:

2017年6月6日晚上8点到10点

课程内容:

1、 聊天机器人概括,应用场景,分类,技术发展路线及基于深度学习技术聊天机器人

2、 基于深度学习聊天机器人训练数据收集,清洗

3、 特征工程:文本数据预处理,特征化和数值化后转化为可训练的数据

4、 LSTM组件介绍

5、 Seq2seq算法介绍

6、 Seq2seq模型的优缺点和改进


Python爱好者社区


为大家提供与Python相关的最新技术和资讯


长按指纹 > 识别图中二维码 > 添加关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存