标签:

1)类:用来描述具体相同的属性和方法的对象的集合

2)对象:通过类定义的数据结构实例

3)类设计的要点:名称、属性(特征)、方法(行为,也就是函数)

#其中的方法__init__(self,name,age) 是固定写法

class Cat():

"""模拟小猫的类"""

def __init__(self,name,age):

"""初始化属性name和age"""

self.name = name

self.age = age

def eat(self):

"""小猫会吃饭"""

print(self.name.title() + ' is now eating.')

def sleep(self):

"""小猫会睡觉"""

print(self.name.title() + ' is now sleeping.')

#eat(),sleep(self) 为类的方法,只要实例化类实例,即可随意调用

2.创建一个对象并赋值的方法(创建类实例)

对象名 = 类()

MIAOMIAO = CAT()

3.通过对象调阅类中的方法(即函数)

对象名.方法()

MIAOMIAO.eat()

MIAOMIAO.drink()

4.给对象添加属性

对象名.新的属性名 = 值

MIAOMIAO.weight = 25

5.获取对象的属性

1)对象.属性

print(MIAOMIAO.weight)

2)在类中新定义一个方法,在方法中使用self.属性

def Info(self):

print(self.weight)

6.__init__()的方法

1)是Python自动调用的方法,调用时间为:创建完对象之后立马调用

2)不需要开发者调用

3)这个方法会完成一些默认的事情,比如添加一些属性

4)class XXXXX:

def __init__(self, new_a, new_b):

self.a = new_a

self.b = new_b

动态修改对象属性值

直接访问属性赋值

my_cat.color = 'red'

print(my_cat.color)#结果为 red

封裝方法進行動態調用賦值,这种方法其实就类比 java 中的 set 方法。

my_cat.setColor('black')

print(my_cat.color)#结果为 black

继承,面相对象三大特性之一

前面说到,类实可以用来描述一类事物的,而为了达到代码的复用性,面相对象提供了继承的概念,即可以通过继承的方式获取已存在类的属性及方法。被继承方称为父类,继承方称为子类。

定义 Car 父类:

class Car():

"""汽车类"""

def __init__(self,make,model,year):

self.make = make

self.model = model

self.year = year

self.odometer_reading = 0

def get_descriptive_name(self):

long_name = str(self.year) + ' ' + self.make + ' ' +self.model

return long_name.title()

def read_odometer(self):

print('This car has ' + str(self.odometer_reading) + ' miles on it.')

def updata_odometer(self,mileage):

"""动态处理属性值"""

if mileage >= self.odometer_reading:

self.odometer_reading = mileage

else:

print('You can\'t roll back an odometer!')

def increment_odometer(self,miles):

"""属性值递增"""

self.odometer_reading += miles

子类:

class ElectricCar(Car):

"""电动汽车"""

def __init__(self,make,model,year):

"""初始化父类属性"""

super().__init__(make,model,year)

my_tesla = ElectricCar('tesla','model s',2017)

print(my_tesla.get_descriptive_name())

结果:2017 Tesla Model S

简析:ElectricCar 累拥有 Car 类的所有属性及方法,在_init_() 中调用父类 _init_方法初始化父类属性,其中super为父类对象,可以使用它访问父类的方法及属性。

定义子类独有的属性及方法

一类事物公有的属性及方法可以封装在父类,以达到复用的效果。除了可以从父类继承公有属性及方法之外,子类还可以定义自己独有的属性及方法。

def __init__(self,make,model,year):

"""初始化父类属性"""

super().__init__(make,model,year)

self.battery_size = 70

def describe_battery(self):

"""子类特有的方法"""

print('This car has a' + str(self.battery_size) + '-kwh battery.')

my_tesla = ElectricCar(‘tesla’,‘model s’,2017)

print(my_tesla.describe_battery())

结果:This car has a 70-kwh battery.

重写父类的方法

有时候父类定义的方法往往不符合子类现有的需求,可以对它进行重写,执行子类特有的逻辑。注意:只要重写了父类的方法,此时调用方法以子类实现为主

def get_descriptive_name(self):

print(‘重写了父类的方法’)

print(my_tesla.get_descriptive_name())

结果肯定是打印 重写了父类的方法

导入类

oop 编程中,每个类都有自己特有的功能,当整个项目也来越复杂的时候,就需要每个类之间相互依赖,正常情况下,都是一个 python 文件存储一个类,当需要依赖别的类时,需要导入。使用格式 from 文件名 import 类名…,当然了 也可以一个文件存储多个类。

例如:在 car.py 中添加 Car 类

class Car():

“”“汽车类”""

def __init__(self,make,model,year):

self.make = make

self.model = model

self.year = year

self.odometer_reading = 0

def get_descriptive_name(self):

long_name = str(self.year) + ' ' + self.make + ' ' +self.model

return long_name.title()

def read_odometer(self):

print('This car has ' + str(self.odometer_reading) + ' miles on it.')

def updata_odometer(self,mileage):

"""动态处理属性值"""

if mileage >= self.odometer_reading:

self.odometer_reading = mileage

else:

print('You can\'t roll back an odometer!')

def increment_odometer(self,miles):

"""属性值递增"""

self.odometer_reading += miles

在 electricCar.py 中添加 ElectricCar 类继承自 Car ,

from car import Car

class ElectricCar(Car):

"""电动汽车"""

def __init__(self,make,model,year):

"""初始化父类属性"""

super().__init__(make,model,year)

self.battery_size = 70

def describe_battery(self):

"""子类特有的方法"""

print('This car has a ' + str(self.battery_size) + '-kwh battery.')

def get_descriptive_name(self):

print('重写了父类的方法')

作者:张少林

链接:https://www.jianshu.com/p/a06f7180c332

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

标签:

来源: https://blog.csdn.net/qq_35425262/article/details/82953190

笨方法学 python3怎么样_笨办法学python3日常问题解决相关推荐

  1. python2和python3关系_升级python2至python3解决依赖关系

    1.最小化安装centos7,在升级python3的时候会出现很多包未安装,为解决依赖关系: yum -y install gcc gcc-c++ zlib zlib-devel libffi-dev ...

  2. 笨方法学python3怎么样_笨办法学Python3

    $if greeting: I just wanted to say $greeting. $else: Hello, world!

  3. 笨方法学python在线_“笨办法”学Python(第3版)

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  4. 快速掌握python3语法_【Python】Python3基本语法入门学习

    0.Python概述 1.First Word Game 2.变量与字符串 3.improved game 4.Python数据类型 5.常用操作符 6.分支与循环 7.列表 8.元组 9.字符串内置 ...

  5. 笨方法学python3-笨办法学python3 pdf下载|

    笨办法学python pdf电子版可以帮助想学习python编程的同学入门,你可以从上面学习如何快捷编写python代码,以及运行过程,还有非常多的习题讲解,需要的朋友可以来当易网下载使用. 笨办法学 ...

  6. 《笨方法学python》_《笨办法学Python》 第46课手记

    <笨办法学Python> 第46课手记 这节课制作了一个Python的项目骨架,花了我一个晚上和一个早上的时间,原因是我下载的pdf里面只有OX S的命令行,而没有win下的.我为此在知道 ...

  7. [IT学习]Learn Python the Hard Way (Using Python 3)笨办法学Python3版本

    黑客余弦先生在知道创宇的知道创宇研发技能表v3.1中提到了入门Python的一本好书<Learn Python the Hard Way(英文版链接)>.其中的代码全部是2.7版本. 如果 ...

  8. 笨方法学python第四版当当_“笨办法”学Python(第3版)

    ZedShaw完善了这个堪称世上较好的Python学习系统.只要跟着学习,你就会和迄今为止数十万Zed教过的初学者一样获得成功. 在这本书中,你将通过完成52个精心设计的习题来学会Python.阅读这 ...

  9. 《笨办法学python3》再笨的人都能学会python,附PDF,拿走不谢

    <笨办法学python3>这本书的最终目标是让你起步python编程,虽然说是用"笨办法"学习写程序,但是其实并不是这样的. 所谓的"笨办法"就是指 ...

  10. 读书笔记 笨办法学python3

    读后评价 <笨办法学Python3>是一本适合Python3的初学者实用性书籍,以52个练习题为章节讲述了Python3的基础知识,包括基本语法.控制流程.列表.字典.元组.面向对象(类, ...

最新文章

  1. android 登录组件开发,Android组件化开发路由的设计
  2. 后端码农谈前端(CSS篇)第三课:选择器
  3. 解决 echarts柱状图x轴数据隔一个显示
  4. 中专学校的计算机教什么,中专计算机学校
  5. 产品分析:岛APP,青年文化拍了拍社交赛道
  6. php ob静态缓存
  7. android 获取连接WiFi的名称
  8. 安卓入门系列-04常见布局之LinearLayout(线性布局)
  9. javaWEB总结(9):自定义HttpServlet
  10. 离合器预减振超载造成变速箱怠速异响matlab与python仿真分析
  11. Could not load driverClass ${jdbc.driver}
  12. CentOS7下RabbitMq安装和开机自启动配置
  13. 在河北当中学老师用不用考计算机,想当教师没编制?两类教师不用考,直接进编制...
  14. java对列_JAVA实现EXCEL行列号解析(一)——单格解析
  15. tween.js的使用
  16. 一个很小的 截图 库。 只需要依赖 jQuery
  17. 源代码开发的公司该如何选择加密软件?
  18. 文件相似度比对工具的设计与实现
  19. 小米平板1刷LineageOS16
  20. android imageview topcrop,android照相选择图库后将照片剪裁压缩显示到imageview上

热门文章

  1. 2021年最新AZ自动发卡网源码-全网首发
  2. 解决ecshop模板兼容jquery问题
  3. js格式化显示json对象
  4. 误入 GitHub 游戏区,结果意外地收获颇丰
  5. BI如何实现用户身份集成自定义安全程序开发
  6. CF487E Tourists (圆方树,LCT)
  7. python入门指南阅读答案_第二章 _【Python入门指南】免费在线阅读 - 九六城堡小说论坛...
  8. 我!程序媛!上家阿里巴巴,下家字节跳动!薪资翻番!选择裸辞躺平!无限期休息!...
  9. Android8.1 framework 微信付款码显示不出来
  10. 诺贝尔奖得主纳什夫妇因车祸去世