为了给女朋友讲清楚Python中的类,熬到凌晨两点我也不喊累!

女朋友——一个神奇的生物。想要知道一件事情是怎么回事儿,那就不停的问我,一个文科生,我实在是斗不过她那张可爱的小嘴儿。昨天她在看二级试题的时候,突然看到了Windows、IOS、Linux都分别是什么,我还特意打开我的Kali Linux给她展示了一番,几行命令输下去,她觉得好神奇的样子~ 哇塞了好几下!!!

这不,又看到了一题说:计算机能够直接识别的语言是? 这还用说嘛,肯定是机器语言啊。她还一直追着我问为什么不是高级语言~我就给她慢慢道来:

高级语言是给人看的,计算机不能直接识别,只有将高级语言变成了机器语言,计算机才能理解~懂了没?臭宝宝 ~于是我直接拿起我的Python课本,随便翻开了一页,翻到了类这一章节。还找了代码给她看,她还竟然让我给她讲什么是类,我的臭宝宝嘞,你一个文科生,学这个干嘛?非要赖着我就是想学,都凌晨一点多了,还不睡觉 ~ 好吧好吧,今天你的贴心男友就给你讲一下什么是 ‘类’ 吧。

首先:

给你一文科女子讲类必须要拿实际例子来讲,要不然你会疯掉的~哈哈哈
就比如,人类 一词 就将人当做一个类 ,而人类又包括黄种人、白种人、黑种人。这三种人都属于人类(由于每种人不只是一个人,而是多个人组成的一种人),所以可以称三种人为人类的三个子类。

在此,人这个类就可以有三种对象了,分别是黄种人对象、白种人对象、黑种人对象。每种人里的每个人可以是种类人的对象。

就当一个类的对象(对象比如组成黄种人的人)是另一个类的对象(人类的对象-黄种人)的子集时,前者那个小范围的类就是后者的子类,而后者就称作是前面的超类(也称父类)!(给你举这个例子你不累,我也不超累,哈哈)

我毫不犹豫的打开Pycharm,直接做演示。万一没听懂,我就惨了啊~
我连忙敲了几行代码,让她看着我帅气的手法,分分钟搞定超类和子类的定义。

class Person:
    def kind(self,name):
        self.name = name
        return self.name
    def show(self):
        print("Hi~,I'm {}.".format(self.name))

class Yellow_race(Person):
    def Interest(self,what):
        self.what = what
    def display(self):
        print("I like {}.".format(self.what))

Yellow = Person()        #给超类人定义黄种人对象
Yellow.kind('Chinese')
Yellow.show()
print()
Y = Yellow_race()		#给子类黄种人定义中国人对象,子类对象是超类对象的子集
Y.Interest('swim')      
Y.display()
print()
Y.kind("from China")        #子类对象能调用超类的方法
Y.show()

在这里插入图片描述
看这个示例,黄种人是人类的子类,其对象可以继承人类的特性,可以有自己的称号!另外子类对象子集也有子集的特点,比如他的兴趣爱好。

这么简单的道理,应该能懂吧。我心里暗自高兴~

我一来劲,直接将类中的方法和Python函数的区别给她讲了一番:

class Class:
    def method(self):
        print('have a self.')

def function():
    str = "don't method."
    return str
mo = Class()
mo.method()
print()
print(function())

在这里插入图片描述
注意,Class类中的mothod是一个方法,虽然也是用def定义,但是并不是函数,而且需要注意的是,方法都有自带参数self。定义方法的时候位置还必须是在类体内部!而Python函数就不同了,函数是在代码的正常顺序下定义的,并且参数可有可无,但是不会自带参数。无参数就是一个普通函数,有了参数也需要给它进行传参。方法和函数的主要区别就在于定义的位置不同!

对于上述示例,有一个比较有意思的特点:
在上段代码后面加上这两行,调用结果还是自定义函数,而不是方法

mo.method = function
print("其实是函数 {}".format(mo.method()))

在这里插入图片描述

然后:

顺势我将对象的属性给她娓娓道来:

刚才也跟你讲了什么是对象是吧,就是对象是怎么来的。那么,对象呢,它是具有属性的,属性也就是类中的变量以及方法!

还拿刚才的人这个类来做示例,人有名字,有年龄等属性。人还能说话,还能唱歌。那么我再给你写段代码,让你彻底明白对象的属性!

class Person:
    like = None
    adept = None

    def name(self,name):
        self.name = name
        return self.name
    def age(self,age):
        self.age = age
        return self.age
    def speak(self,what):
        self.what = what
        return self.what

A = Person()
Name = A.name('Honker')
Age = A.age(20)
Talk = A.speak('Hello,are you ok?')
Like = A.like = "swim"
Adept = A.adept = "study"
print("His name is {},he is {} years old.He says:{}.I like {} and adept {}.".format(Name,Age,Talk,Like,Adept))

在这里插入图片描述
就像这样,对象A可以调用Person类里面所有方法及变量,并在调用时给出参数。这里给你讲就讲一些基础的,懂了没?

只听她说了一句,没懂,都两点了,你不累我都听累了。让你给我讲个类,你讲这么多!!!我。。。。。。。睡觉吧~再见!

我太难了,有赞吗?

往期推荐:

  1. 用Python造一个键盘记录功能出来!
  2. 死亡之ping
  3. 黑客时代

在这里插入图片描述

发布了67 篇原创文章 · 获赞 95 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43729943/article/details/104529577