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

浏览: 7579

前言

【本文授权“Python爱好者社区”微信公众号以本人“王大伟”为作者原创首发】

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

Clipboard Image.png

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

Clipboard Image.png

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

对象和类

当然,此对象非彼对象。

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

Clipboard Image.png

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

Clipboard Image.png


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

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

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

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

所以类是对对象的抽象。

面向对象和面向过程

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

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

假如你想吃烤鱼:

Clipboard Image.png

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

       while(没吃腻):

体重++

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

      做人做要紧开心~


所以可以总结如下:

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

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

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

Clipboard Image.png


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


class 类名(大驼峰命名法):
#属性

#方法
def xxx():
pass

类名:类的名字

属性:类的属性

方法:类的方法

这解释。。。【掀桌

Clipboard Image.png

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

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

定义一个类

class Car:

def drive(selt):
print('我正在开车')

def turnover(self):
print('翻车了')

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

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

Clipboard Image.pngClipboard Image.png

创建一个对象

年轻人,听说你没对象?

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

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

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

运行结果:

Clipboard Image.png

看来小姐姐翻车了。。。

类的三要素集合

类的名称(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,或许可以有那啥???算了,怕被河蟹。

运行一下程序

Clipboard Image.png


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

推荐 11
本文由 ID王大伟 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

3 个评论

面向 OO
重新学习了,注册了一个号来评论,不错不错,留个站xyrland.com 溜了溜了
今天开始学习python,希望到年底能有所收货

要回复文章请先登录注册