Python编程从入门到实践笔记——类

#coding=gbk
#Python编程从入门到实践笔记——类
#9.1创建和使用类
#1.创建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!") #__init__()是一个特殊的方法,每当根据Dog类创建新实例时,Python都会自动运行它。
#在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。
#方法__init__()定义成了包含三个形参:self、name和age。在这个方法的定义中,形参self必不可少,还必须位于其他形参的前面。
#Python调用这个__init__()方法来创建Dog实例时,将自动传入实参self。每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身
#的引用, 让实例能够访问类中的属性和方法。 我们创建Dog 实例时,Python将调用Dog类的方法__init__() 。
#我们将通过实参向Dog()传递名字和年龄;self会自动传递,因此我们不需要传递它。每当我们根据Dog类创建实例时,都只需给最后两个形参(name 和age )提供值。 #2.根据类创建实例
my_dog = Dog('willie',6)
print("My dog's name is " + my_dog.name.title() + " and he is "+ str(my_dog.age) + " years old.") #访问属性 .
my_dog.name
#调用方法
my_dog.sit()
#创建多个实例
my_dog = Dog('willie',6)
your_dog = Dog('lucy',7) #9.2使用类和实例
#1.Car类
class Car():
"""一次模拟汽车的简单尝试"""
def __init__(self, make, model, year):
"""初始化描述汽车的属性"""
self.make = make
self.model = model
self.year = year
#添加属性odometer_reading,并设置默认值为0
self.odometer_reading = 0 def get_odometer(self):
print("This car has " + str(self.odometer_reading) + " miles on it.") def set_odometer(self,mileage):
self.odometer_reading = mileage def get_descriptive_name(self):
"""返回整洁的描述性信息"""
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title() my_new_car = Car('Audi', 'A4L', 2016)
print(my_new_car.get_descriptive_name())
my_new_car.get_odometer() #2.给属性指定默认值 #3.修改属性的值
#直接修改
my_new_car.odometer_reading = 23
my_new_car.get_odometer() #通过方法修改
#def set_odometer(self,mileage)
my_new_car.set_odometer(35)
my_new_car.get_odometer() #9.3继承
#创建子类的时候,父类必须包含在当前文件中,且位于子类的前面。
#定义子类的时候,必须在括号内指定父类的名称。
#方法__init__()接受创建Car实例所需的信息
#super()帮助Python将父类和子类关联起来。
class Battery(): def __init__(self, battery_size=70):
self.battery_size = battery_size def describe_battery(self):
print("This car has a "+ str(self.battery_size) + "-KWh battery.") #1.子类的方法__init__()
class ElectricCar(Car): def __init__(self, make, model, year):
super().__init__(make, model, year)
self.battery_size = 70 self.battery = Battery() def describe_battery(self):
print("This car has a " + str(self.battery_size) + "-KWh battery.") def fill_gas_tank(self):
print("This car doesn't need a gas tank!") my_tesla = ElectricCar('teala', 'model s', 2016)
print(my_tesla.get_descriptive_name()) #2.给子类定义属性和方法
my_tesla.describe_battery() #3.重写父类的方法:取其精华,去其糟粕
#def fill_gas_tank(self):
my_tesla.fill_gas_tank() #4.将实例用作属性
#class Battery():
my_tesla.battery.describe_battery() #9.4导入类
#1.导入单个类
#打开模块dog(这里我为了方便在dog.py中写的内容),并导入其中的Car类
from dog import Car my_new_car = Car('audi','a4',2016)
print(my_new_car.get_descriptive_name()) #在一个模块中存储多个类:直接在模块中编写多个类 #从一个模块中导入多个类
from dog import Car, Battery #导入整个模块
import dog #导入模块中的所有类
#from module_name import * #在一个模块中导入另一个模块 #9.5Python标准库 #9.6类编码风格
#类名:驼峰命名法(大驼峰),不适用下划线
#实例名和模块名:小驼峰,单词之间加下划线
#每个模块都应包含一个文档字符串
#空行的使用:在类中使用一个空行来分割方法;在模块中,使用两个空行来分割类
#导入标准库中的模块和自己编写的模块,先导入标准库,空行,导入自己的模块

Python编程从入门到实践笔记——类的更多相关文章

  1. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  2. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  3. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  4. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

  5. Python编程从入门到实践笔记——字典

    Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...

  6. Python编程从入门到实践笔记——if语句

    Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...

  7. Python编程从入门到实践笔记——操作列表

    Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...

  8. Python编程从入门到实践笔记——列表简介

    Python编程从入门到实践笔记——列表简介 #coding=utf-8 #列表——我的理解等于C语言和Java中的数组 bicycles = ["trek","cann ...

  9. Python编程从入门到实践笔记——变量和简单数据类型

    Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...

随机推荐

  1. BZOJ_1070_[SCOI2007]修车_费用流

    BZOJ_1070_[SCOI2007]修车_费用流 Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同 的车进行维修所用的时间 ...

  2. JavaSE-管道流

    1,)创建管道输出流PipedOutputStream pos和管道输入流PipedInputStream pis 2,)将pos和pis匹配,pos.connect(pis); 3,)将pos赋给信 ...

  3. Python基础面试,看这篇文章画重点吧,Python面试题No1

    为什么有这个系列的文章 一直想写一些更加基础的文章,但是总是想不到好的点子,最近到了就业季,一大堆学生面临就业了,正好,从Python的面试题出发,分析和解答一些常见的面试题,并且总结一些文字. 每一 ...

  4. React 虚拟 DOM 的差异检测机制

    React 使用虚拟 DOM 将计算好之后的更新发送到真实的 DOM 树上,减少了频繁操作真实 DOM 的时间消耗,但将成本转移到了 JavaScript 中,因为要计算新旧 DOM 树的差异嘛.所以 ...

  5. Springboot 系列(六)Spring Boot web 开发之拦截器和三大组件

    1. 拦截器 Springboot 中的 Interceptor 拦截器也就是 mvc 中的拦截器,只是省去了 xml 配置部分.并没有本质的不同,都是通过实现 HandlerInterceptor ...

  6. 程序员如何巧用Excel提高工作效率

    作为一名程序员,我们可能很少使用Excel,但是公司的一些职能部门,比如HR,财务等,使用Excel真的是太熟练了,以至于一些系统开发出来,导入和导出功能是使用最频繁的,哈哈. 其实在程序开发的过程中 ...

  7. 理解ScheduledExecutorService中scheduleAtFixedRate和scheduleWithFixedDelay的区别

    scheduleAtFixedRate 每间隔一段时间执行,分为两种情况: 当前任务执行时间小于间隔时间,每次到点即执行: /** * 任务执行时间(8s)小于间隔时间(10s) */ public ...

  8. 3.JAVA-方法重载,类的封装,构造/析构方法

    1.方法重载 和C++的函数重载一样,主要是实现多个相同的函数名,但是参数表不同. 参数表不同主要有以下几种 1) 参数个数不同 2) 参数类型不同 3) 参数顺序不同 2.类和对象 类class 用 ...

  9. asp.net Core 中AuthorizationHandler 实现自定义授权

    前言 ASP.NET Core 中 继承的是AuthorizationHandler ,而ASP.NET Framework 中继承的是AuthorizeAttribute. 它们都是用过重写里面的方 ...

  10. css 四周边框角加粗效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...