######类##
##创建和使用类
#创建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笔记PythonPython笔记笔Python笔Python笔记记记Python笔记
Python笔记 ,python笔记全,Python源码
中文 Python 笔记
python笔记
Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...
马哥python课堂笔记_马哥教育PYTHON相关基础笔记 1 python 推荐书籍 《python Cookbook》 《learn python the hard way》 《google's python class》 《简明python教程》 2 冯诺依曼体系架构 输⼊设备-> 存储器(运算...
Python笔记完整版.md
Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf ...
Python 笔记源码综合下载.zip
Python基础语法,到包的使用 Python高级语法,常用模块 WEB前端 数据库 Django框架 爬虫及其框架
python笔记
python笔记,python课程笔记 python基础 flask框架
python笔记.md
中文 Python 笔记 中文 Python 笔记 中文 Python 笔记
到http://www.python.org/下载最新的稳定版本Python。在Windows 平台下, 安装过程和普通的软件没有什么区别,一路下一步就可以了。
自己总结的python最最基础的笔记
1、Python环境搭建 1.1 Python简介 1.2 Python语言的发展历程 1.3 Python语言的主要特点 1.4 Python应用场景 1.5 Python环境搭建 1.6 第一个Python程序 1.7 集成开发工具 2、Python语法基础 2.1 Python中的...
python笔记整理
Python 学习笔记