在做欧几里得的几何时,证明一个简单的结论,有时候直接甩出公理出来就可以了,再后碰到复杂的,公理不够用了(这意味着你要根据公理从头到尾推一遍),直接甩出定理来解决数学里的几何问题,类也是这种效果。

面向对象编程是最有效的软件编写方法之一,在面对对象编程中,编写表示事物和情景的类,并基于这些类来创建对象,类对对象都有通用的行为,基于类创建对象时,每个对象都具有这种通用行为,当然了,可以根据需要对每个对象赋予独特的个性化的行为。

创建和使用类

编写一个叫小狗的类,这表示的不是特定的小狗,而是“通用”的小狗,这类里包含大部分狗所具备的一些特征(当然这里只写几个特征。。。)创建好了类,然后创建表示特定小狗的实例。

'''编写一个表示小狗的简单类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系列之类(创建和使用类)相关推荐

  1. 文科生学python系列_文科生学 Python 系列 3:函数

    文科生学Python系列3:函数​www.jianshu.com 还是第二课的内容 函数是一段可以重复使用的代码,往往是为了解决某个特定的人物.在 Python 中有两种函数:内置函数和自定义函数. ...

  2. 路飞学城的python课程怎么样_路飞学城系列:Python就业班课程入学须知整理

    学习周期:[2020.8.1起,2020.8.2日整理] 1.专业视频有效期:2年. 2.导师服务有效期:6个月. 3.路飞学城相关消息:"路飞学城"微信公众号,包括系统通知.作业 ...

  3. python 爬虫框架_小白学 Python 爬虫(28):自动化测试框架 Selenium (下)

    人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...

  4. 新手学python书籍推荐_新手学python看哪本书

    对于零基础入门的人来说,对于Python的学习还是有点懵懵懂懂的,如果有一些书籍先看看来引导,学起来难度也会减低很多!所以,学python倒是向大家推荐这些书籍! 1.<PYTHON基础教程(第 ...

  5. python判断素数_小白学Python | 你还在说你入不了门吗

    收藏的好多啊 原创不易,动动小手,点个赞啦!! 十二月份,天气有时候会很阴沉,一天都见不到太阳.气温也慢慢变冷了,晚上回家还是会感觉到衣服穿少了. 阴阴沉沉总会过去的,我还是期待阳春三月. 2019年 ...

  6. python学习图解_轻松学Python 3 零基础彩色图解、专业入门

    哈啰,Python Python无疑是当今最值得学习的程式语言,因为它不仅语法简单,而且功能强大,还可以在Windows.Mac OS和Linux等所有平台上执行.再加上拥有将近十万个各式各样的套件, ...

  7. python 空数组_从零开始学python之numpy

    Numpy是python中一个常用的库,其支持大量的维度数据与矩阵运算,也拥有针对数据运算的数学函数库,用于独特的数组存储方式及对应的处理方法.一般用以下方式导入: import numpy as n ...

  8. python绘制直角坐标系_小白学 Python 数据分析(16):Matplotlib(一)坐标系

    人生苦短,我用 Python 前文传送门: 引言 各位同学好,本篇文章,我们来介绍下使用 Matplotlib 时如何建立坐标系. 回想一下以前我们在接受九年义务教育毒打上数学课的时候,应该都画过折线 ...

  9. 只会python怎么挣钱_业余学python有用吗

    Python的火热我就不细说了,大家都是编程老司机,对最前沿最火热的编程语言肯定比我还了解. 前几天,我看了一篇"如何用Python制造一个抖音小姐姐发掘器?",阅读量竟然比头条上 ...

  10. python怎么测试函数_快学Python:如何测试函数与类

    编写代码离不开写测试,只有通过测试才知道代码的逻辑有没有问题,健壮性好不好等,测试让你深信,即便有越来越多的人使用你的程序,它也能一如既往正确地工作. 1.测试函数 Python标准库中的模块unit ...

最新文章

  1. HTTPS从认识到线上实战全记录
  2. linux 动态库建立,浅析linux下静态库和动态库的建立和使用
  3. 算法设计与分析【第七周】贪心算法 最优装载问题
  4. java顺序栈和链栈_Java的顺序栈和链式栈
  5. 【先生】丘成桐:中国人可以做世界一流学者
  6. 【数据结构与算法】基础数据结构与算法大全
  7. django权限系统实现步骤_在django中实现一个简单的权限管理
  8. keyup常用事件_KeyUp 事件
  9. Android好用的工具-监测,性能,网络等
  10. 超级简单的纯js 象棋,看一遍你也会写
  11. Escape HDU - 3533
  12. mysql explain字段意思解释
  13. java课程 数独 文库_一次数独生成及求解方案的剖析(Java实现)
  14. 推荐一个3D建模工具集
  15. Android 实现 拍照测距 的APP
  16. 《经济学人》深度报道:DeepMind和谷歌的AI拉锯战
  17. Excel-VBA:根据正则表达式提取文本(字符串、内容)
  18. altium 交叉线_怎样设置原理图中电气连接线交叉点的属性?
  19. python os模块(1)
  20. iNavFlight之MSP DJI协议飞控端请求应答

热门文章

  1. SQL Server中的MTVF和CE模型变化
  2. Ceres Solver: 高效的非线性优化库(二)实战篇
  3. Bootstrap框架(二)
  4. JavaScript之 Bom+Dom
  5. [置顶] Oracle数据操作和控制语言详解
  6. SharePoint 解决管理员密码修改后的问题
  7. SPS :SPS 2003 安装过程中的语言版本问题。
  8. 【题解】SCOI2009围豆豆
  9. SharePoint PowerShell 批量删除遗弃视图
  10. java中的过滤器与监听器