python创建系列_一起学python系列之类(创建和使用类)
在做欧几里得的几何时,证明一个简单的结论,有时候直接甩出公理出来就可以了,再后碰到复杂的,公理不够用了(这意味着你要根据公理从头到尾推一遍),直接甩出定理来解决数学里的几何问题,类也是这种效果。
面向对象编程是最有效的软件编写方法之一,在面对对象编程中,编写表示事物和情景的类,并基于这些类来创建对象,类对对象都有通用的行为,基于类创建对象时,每个对象都具有这种通用行为,当然了,可以根据需要对每个对象赋予独特的个性化的行为。
创建和使用类
编写一个叫小狗的类,这表示的不是特定的小狗,而是“通用”的小狗,这类里包含大部分狗所具备的一些特征(当然这里只写几个特征。。。)创建好了类,然后创建表示特定小狗的实例。
'''编写一个表示小狗的简单类Dog ——它表示的不是特定的小狗, 而是任何小狗'''
#创建小狗的类
class Dog():
'''一次模拟小狗的简单尝试'''
def __init__(self,name,age):
'''初始化属性name和age'''
self.name=name
self.age=age
def sit(self):
'''模拟小狗被命令时蹲下'''
print(self.name.title()+" is now sitting.")
def roll_over(self):
'''模拟小狗被命令时打滚'''
print(self.name.title()+" rolled over!")
my_dog=Dog('willie',6)
print("My name is"+ my_dog.name.title()+".")
print("My dog is "+str(my_dog.age)+"years old.")
My name isWillie.
My dog is 6years old.
Willie is now sitting.
Willie rolled over!
关于这段代码需要解释的东西很多,没事,一点点来捋顺了,我们先说形式上的东西:
#这个类定义中的括号是空的, 因为我们要从空白创建这个类
#__init__类中的函数成为方法,开头末尾两个下划线
#self形参创建类时不能少,而且必须在其他形参之前,self是一种指向实例的引用
#缩进,冒号之类的也要注意
内容上:
两个变量都有前缀self 。 以self 为前缀的变量都可供类中的所有方法使用, 我们还可以通过类的任何实例来访问这些变量。 self.name = name 获取存储在形参name 中的值, 并将其存储到变量name 中, 然后该变量被关联到当前创建的实例。
Dog 类还定义了另外两个方法: sit() 和roll_over() 。 由于这些方法不需要额外的信息, 如名字或年龄, 因此它们只有一个形参self 。
而上面这段代码:
my_dog=Dog('willie',6)
print("My name is"+ my_dog.name.title()+".")
print("My dog is "+str(my_dog.age)+"years old.")
就是根据类创建实例,那特定小狗的个性化体现在哪呢?这里的例子里就体现在两个print语句上,他的小狗未必print这些话(自定义),而且你发现没,输出结果是实例里语句优先。
访问属性
要访问实例的属性, 可使用句点表示法
my_dog.name
调用方法
根据dog类创建实例后,就可以使用句点表示法来调用Dog类
'''来让小狗蹲下和打滚'''
my_dog.sit()
my_dog.roll_over()
创建多个实例
'''下面再创建一个名为your_dog的实例'''
my_dog=Dog('willie',6)
your_dog=Dog('lucy',3)
print("My dog's name is "+my_dog.name.title()+".")
print("My dog is "+str(my_dog.age)+" years old.")
my_dog.sit()
print("\nYour dog's "+your_dog.name.title()+" .")
print("\n Your dog is "+ str(your_dog.age)+ " years old.")
your_dog.sit()
My dog's name is Willie.
My dog is 6 years old.
Willie is now sitting.
Your dog's Lucy .
Your dog is 3 years old.
Lucy is now sitting.
python创建系列_一起学python系列之类(创建和使用类)相关推荐
- 文科生学python系列_文科生学 Python 系列 3:函数
文科生学Python系列3:函数www.jianshu.com 还是第二课的内容 函数是一段可以重复使用的代码,往往是为了解决某个特定的人物.在 Python 中有两种函数:内置函数和自定义函数. ...
- 路飞学城的python课程怎么样_路飞学城系列:Python就业班课程入学须知整理
学习周期:[2020.8.1起,2020.8.2日整理] 1.专业视频有效期:2年. 2.导师服务有效期:6个月. 3.路飞学城相关消息:"路飞学城"微信公众号,包括系统通知.作业 ...
- python 爬虫框架_小白学 Python 爬虫(28):自动化测试框架 Selenium (下)
人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...
- 新手学python书籍推荐_新手学python看哪本书
对于零基础入门的人来说,对于Python的学习还是有点懵懵懂懂的,如果有一些书籍先看看来引导,学起来难度也会减低很多!所以,学python倒是向大家推荐这些书籍! 1.<PYTHON基础教程(第 ...
- python判断素数_小白学Python | 你还在说你入不了门吗
收藏的好多啊 原创不易,动动小手,点个赞啦!! 十二月份,天气有时候会很阴沉,一天都见不到太阳.气温也慢慢变冷了,晚上回家还是会感觉到衣服穿少了. 阴阴沉沉总会过去的,我还是期待阳春三月. 2019年 ...
- python学习图解_轻松学Python 3 零基础彩色图解、专业入门
哈啰,Python Python无疑是当今最值得学习的程式语言,因为它不仅语法简单,而且功能强大,还可以在Windows.Mac OS和Linux等所有平台上执行.再加上拥有将近十万个各式各样的套件, ...
- python 空数组_从零开始学python之numpy
Numpy是python中一个常用的库,其支持大量的维度数据与矩阵运算,也拥有针对数据运算的数学函数库,用于独特的数组存储方式及对应的处理方法.一般用以下方式导入: import numpy as n ...
- python绘制直角坐标系_小白学 Python 数据分析(16):Matplotlib(一)坐标系
人生苦短,我用 Python 前文传送门: 引言 各位同学好,本篇文章,我们来介绍下使用 Matplotlib 时如何建立坐标系. 回想一下以前我们在接受九年义务教育毒打上数学课的时候,应该都画过折线 ...
- 只会python怎么挣钱_业余学python有用吗
Python的火热我就不细说了,大家都是编程老司机,对最前沿最火热的编程语言肯定比我还了解. 前几天,我看了一篇"如何用Python制造一个抖音小姐姐发掘器?",阅读量竟然比头条上 ...
- python怎么测试函数_快学Python:如何测试函数与类
编写代码离不开写测试,只有通过测试才知道代码的逻辑有没有问题,健壮性好不好等,测试让你深信,即便有越来越多的人使用你的程序,它也能一如既往正确地工作. 1.测试函数 Python标准库中的模块unit ...
最新文章
- HTTPS从认识到线上实战全记录
- linux 动态库建立,浅析linux下静态库和动态库的建立和使用
- 算法设计与分析【第七周】贪心算法 最优装载问题
- java顺序栈和链栈_Java的顺序栈和链式栈
- 【先生】丘成桐:中国人可以做世界一流学者
- 【数据结构与算法】基础数据结构与算法大全
- django权限系统实现步骤_在django中实现一个简单的权限管理
- keyup常用事件_KeyUp 事件
- Android好用的工具-监测,性能,网络等
- 超级简单的纯js 象棋,看一遍你也会写
- Escape HDU - 3533
- mysql explain字段意思解释
- java课程 数独 文库_一次数独生成及求解方案的剖析(Java实现)
- 推荐一个3D建模工具集
- Android 实现 拍照测距 的APP
- 《经济学人》深度报道:DeepMind和谷歌的AI拉锯战
- Excel-VBA:根据正则表达式提取文本(字符串、内容)
- altium 交叉线_怎样设置原理图中电气连接线交叉点的属性?
- python os模块(1)
- iNavFlight之MSP DJI协议飞控端请求应答