######类##
##创建和使用类
#创建Dog类(类中的函数成为方法)
class Dog():
"""一次模拟小狗的简单测试"""
def __init__(self,name,age): ##init前后两个下划线_
"""初始化属性name和age"""
self.name=name
self.age=age
def sit(self):
"""模拟小狗被命令时蹲下"""
print(self.name+'is now sitting.')
def roll_over(self):
"""模拟小狗被命令时打滚"""
print(self.name+' rolled over!')
#根据类创建实例
my_dog = Dog('willie',5)
#访问属性 句点法(my_dog.name)
print("My dog is "+my_dog.name.title()+"and %d years old."%my_dog.age)
#调用方法
my_dog.sit()
my_dog.roll_over()
#创建多个实例
my_dog=Dog('curyy',6)
your_dog=Dog('willie',5)
print("My dog is "+my_dog.name.title()+"and %d years old."%my_dog.age)
my_dog.sit()
print("Your dog is "+your_dog.name.title()+"and %d years old."%your_dog.age)
my_dog.sit()
##使用类和实例
#Car类
class Car():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
def get_descriptive_name(self):
long_name=str(self.year)+' '+self.make+' '+self.model
return long_name.title()
my_new_car=Car('audi','a24',2019)
print(my_new_car.get_descriptive_name())
#给属性指定默认值
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("The car has "+str(self.odometer_reading)+" miles on it.")
my_new_car=Car('audi','a24',2019)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
#修改属性的值
#
my_new_car.odometer_reading=99 ##直接访问属性修改
my_new_car.read_odometer()
#
#通过方法修改属性的值
class Car():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading=55 #
"""汽车的属性"""
def get_descriptive_name(self):
long_name=str(self.year)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print("The car has "+str(self.odometer_reading)+" miles on it.")
def update_odometer(self,mileage):
"""
将里程修改为指定的值
禁止将里程表的值回调
"""
if mileage>=self.odometer_reading:
self.odometer_reading=mileage
else:
print("You can't roll back an odometer")
my_new_car=Car('audi','a24',2019)
my_new_car.update_odometer(88) #向update_odometer提供实参,修改属性里程的值
my_new_car.read_odometer() #打印汽车里程
#通过方法对属性的值进行递增
class Car():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading=55 #
"""汽车的属性"""
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
long_name=str(self.year)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print("The car has "+str(self.odometer_reading)+" miles on it.")
def update_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
my_new_car=Car('audi','a24',2019)
my_new_car.update_odometer(88)
my_new_car.increment_odometer(10)
my_new_car.read_odometer()
##继承 一个类继承另一个类的所有属性和方法;原有的类称父类,新类称子类
#电动汽车
class Car(): #父类与子类在同一个文件夹中,且在子类前面
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading=55 #
"""汽车的属性"""
def get_descriptive_name(self):
long_name=str(self.year)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print("The car has "+str(self.odometer_reading)+" miles on it.")
def update_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) #super函数 将父类与子类关联在一起#
##此行代码让python调用父类的方法__init__(),让子类实例包含父类的所有属性
my_tesla=ElectricCar('tesla','curry',2018)
print(my_tesla.get_descriptive_name())
my_tesla.update_odometer(88)
my_tesla.read_odometer()
#给子类定义属性和方法
class Car():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading=55 #
"""汽车的属性"""
def get_descriptive_name(self):
long_name=str(self.year)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print("The car has "+str(self.odometer_reading)+" miles on it.")
def update_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)
self.battery_size=70 #初始化电动汽车特有的属性 #添加新属性
def describe_battery(self):
"""打印一条描述电量的消息"""
print("This car has a "+str(self.battery_size)+'-kwh battery.')
my_tesla=ElectricCar('tesla','curry',2018)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
#重写父类的方法
#假如父类的一个方法 不符合子类模拟实物的行为
#可重写父类方法
"""def fill_gas_tank(): ##此方法在父类中
print('nonononononono')""" ##重写
#将实例用作属性
class Car():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading=55 #
"""汽车的属性"""
def get_descriptive_name(self):
long_name=str(self.year)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print("The car has "+str(self.odometer_reading)+" miles on it.")
def update_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 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.")
def get_range(self):
"""打印一条信息,指出电瓶的续航信息"""
if self.battery_size==70:
range=240
elif self.battery_size==85:
range=270
message="This car can go approximately "+str(range)
message+=" miles on a full charge."
print(message)
class ElectricCar(Car):
"""电动汽车的独特之处"""
def __init__(self,make,model,year):
"""初始化父类的属性"""
super().__init__(make,model,year)
self.battery=Battery() #
my_tesla=ElectricCar('tesla','curry',2018)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()
##导入类
#导入单个类
from car import Car #从car.py文件(模块)中导入Car类#
my_new_car=Car('audi','a6',2018)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading=55
my_new_car.read_odometer()
#在一个模块中存储多个类
#可将上述类Battery和ElectricCar加入模块car.py中
#from car import ElectricCar 可导入类ElectricCar
#从一个模块中导入多个类
#from car import Car,ElectricCar
#导入整个模块
#import car
#Python标准库资源网站:http://pymotw.com/
分享到:
相关推荐
python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记
中文 Python 笔记
python笔记
这份“Python笔记全,Python源码”的压缩包很可能是为了帮助初学者或有经验的开发者深入理解Python语言的核心概念和实践技巧。以下是根据标题和描述可能包含的一些关键知识点: 1. **基础语法**:Python的基础包括...
本篇Python笔记将从多个方面对Python进行介绍,包括其安装过程、基本编程概念、数据类型、基本语句、控制结构、函数使用等,旨在帮助初学者快速入门并掌握Python的基本知识。 一、安装Python 要使用Python,首先...
Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...
Python的面向对象特性在【第十章】及以上章节中得到详细讲解,包括类的定义、继承、封装和多态等概念,让开发者能够构建复杂且可复用的代码结构。 Python的广泛应用不仅限于编写小程序,还涵盖了网络编程、科学计算...
在学习Python笔记源码时,你将接触到这些概念的实际应用,通过阅读和运行源码,可以加深对Python的理解并提升编程能力。源码中可能包括了各种示例,如函数实现、面向对象设计、数据处理流程等,这些都是掌握Python...
Python笔记完整版.md
这份"python笔记.rar"包含了对Python基础知识的详细总结,对于初学者来说是一份极好的学习资源。以下是对笔记内容的详细阐述: 一、Python基础语法 1. 变量与数据类型:Python支持多种数据类型,如整型(int)、...
在马哥教育的PYTHON相关基础笔记中,我们看到几个关键知识点: 1. **推荐书籍**:学习Python时,有几本经典教材值得参考,包括《Python Cookbook》、《Learn Python the Hard Way》、《Google's Python Class》以及...
小甲鱼 Python 教程笔记 本教程笔记涵盖了 Python 的基础知识点,包括变量、字符串、列表、元组、布尔类型、逻辑运算符、循环结构、列表访问、成员资格运算符、is 运算符、引用和拷贝、列表推导式、元组的使用、...
这份"Python学习笔记"涵盖了从环境搭建到基础语法,再到数据类型和控制结构等关键知识点,旨在为初学者提供全面的学习指导。 首先,1.1章节介绍了Python的基础,包括Python的起源和历史。Python是由Guido van ...
python笔记.md
【个人笔记本】是一款基于Python编程语言的开源笔记应用,它集成了Tkinter库,用于创建图形用户界面(GUI)。Tkinter是Python的标准GUI库,它提供了丰富的控件和布局管理器,使得开发者能够轻松地构建出功能完备的...
"Python笔记"可能是一份详尽的学习资料,旨在帮助初学者快速掌握Python的基础知识,直至达到能够独立解决问题的程度。这份文档可能包含了从入门概念到进阶主题的全面讲解。 在Python的入门阶段,笔记可能会涵盖以下...
这份《Python笔记大全》强调了Python的基础知识和高级特性,为读者提供了一份全面的学习指南。以下是对该笔记中提到知识点的详细说明: 1. Python的基本组成和模块路径: Python程序是由包组成的,这些包又由模块和...