前言
咳咳,接着昨天的故事继续
昨天的传送门:https://ask.hellobi.com/blog/wangdawei/8429
昨天我们说了以下几点:
- 面向对象和面向过程的区别
- 对象和类
- 创建类
- 定义对象
- 类的三要素
今天继续来和对象(小姐姐)一起玩耍。
了解对象--小姐姐自我介绍
目前我们只知道小姐姐的姓名,芳龄,除了她喜欢开车,我不了解其他什么了。
所以我想让她做个自我介绍,然后可以深入了解。
让小姐姐(对象)自己介绍一下自己,她比较害羞,不想说一大串,她让我直接问她问题她回答。
所以我先要优化原来定义的类(接着上文结尾代码):
class Car:
def drive(self):
print('我正在开车')
def turnover(self):
print('翻车了')
def introduce(self):
print('%s的年龄是:%d'%(xiao_jie_jie.name,xiao_jie_jie.age))
#创建一个对象
xiao_jie_jie=Car()
xiao_jie_jie.drive()#调用xiao_jie_jie指向的对象的方法
xiao_jie_jie.turnover()
#添加属性,属性就是变量
xiao_jie_jie.name = '王梦瑶'
xiao_jie_jie.age = 20
xiao_jie_jie.introduce()
注意:只有最后一句是小姐姐自己的自我介绍(introduce),其他的都是我完成的啦。
是不是感觉,面向对象很有优势。
运行结果如下:
注意:这里把原来在类外写的print写在了类里,写在了introduce()方法里,然后调用introduce()方法实现自我介绍。
既然小姐姐都自我介绍了,为了表示相互尊重,我也要介绍一下自己。
我的自我介绍
myself = Car()
myself.name = '王大伟'
myself.age = 18
myself.features = '玉树临风 英俊潇洒 风流倜傥 貌似潘安 形貌昳丽 器宇轩昂 一表人才 雄姿英发 风度翩翩'
myself.introduce()
我把我自己也定义在Car这个类下,myself也是Car这个类下的一个对象。
然后同样介绍了我的姓名和年龄
因为我不像小姐姐一样害羞啊
所以我自我介绍就多说了几句‘大实话’,并擅自帮小姐姐补充了一下自我介绍。
class Car:
def drive(self):
print('我正在开车')
def turnover(self):
print('翻车了')
def introduce(self):
print('%s的年龄是:%d,特点是:%s'%(self.name,self.age,self.features))
#创建一个对象
xiao_jie_jie=Car()
xiao_jie_jie.drive()#调用xiao_jie_jie指向的对象的方法
xiao_jie_jie.turnover()
#添加属性,属性就是变量
xiao_jie_jie.name = '王梦瑶'
xiao_jie_jie.age = 20
xiao_jie_jie.features = '北方有佳人 遗世而独立 一顾倾人城 再顾倾人国'
xiao_jie_jie.introduce()
myself = Car()
myself.name = '王大伟'
myself.age = 18
myself.features = '玉树临风 英俊潇洒 风流倜傥 貌似潘安 形貌昳丽 器宇轩昂 一表人才 雄姿英发 风度翩翩'
myself.introduce()
运行结果如下:
注意:划重点,因为我和小姐姐都要使用类中的方法introduce(),为了我和小姐姐这两个对象都能调用这个类中的方法,需要把introduce()方法传入的参数改成如下:
用self代替原来的xiao_jie_jie,self可以通俗理解为,谁调用了方法传的就是谁的参数进去,这里两次调用(小姐姐和我相互自我介绍,相当于传了xiao_jie_jie和myself进去)
这样,我们的自我介绍就完成了。
今天时间不多,只能更新这么多了。
想了解我与小姐姐的更多故事,请持续关注。