`
陈三许
  • 浏览: 7994 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

python笔记7 类

阅读更多
######类##
##创建和使用类
#创建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/
0
0
分享到:
评论

相关推荐

    python笔记python笔记

    python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记

    Python-中文Python笔记

    中文 Python 笔记

    python笔记.zip

    python笔记

    Python笔记 ,python笔记全,Python源码.zip

    这份“Python笔记全,Python源码”的压缩包很可能是为了帮助初学者或有经验的开发者深入理解Python语言的核心概念和实践技巧。以下是根据标题和描述可能包含的一些关键知识点: 1. **基础语法**:Python的基础包括...

    菜鸟的Python笔记

    本篇Python笔记将从多个方面对Python进行介绍,包括其安装过程、基本编程概念、数据类型、基本语句、控制结构、函数使用等,旨在帮助初学者快速入门并掌握Python的基本知识。 一、安装Python 要使用Python,首先...

    Python 笔记源码——内含python后端&机器学习等.zip

    Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...

    python核心笔记.pdf

    Python的面向对象特性在【第十章】及以上章节中得到详细讲解,包括类的定义、继承、封装和多态等概念,让开发者能够构建复杂且可复用的代码结构。 Python的广泛应用不仅限于编写小程序,还涵盖了网络编程、科学计算...

    Python 笔记源码综合下载.zip

    在学习Python笔记源码时,你将接触到这些概念的实际应用,通过阅读和运行源码,可以加深对Python的理解并提升编程能力。源码中可能包括了各种示例,如函数实现、面向对象设计、数据处理流程等,这些都是掌握Python...

    Python笔记完整版.md

    Python笔记完整版.md

    python笔记.rar

    这份"python笔记.rar"包含了对Python基础知识的详细总结,对于初学者来说是一份极好的学习资源。以下是对笔记内容的详细阐述: 一、Python基础语法 1. 变量与数据类型:Python支持多种数据类型,如整型(int)、...

    马哥python课堂笔记-马哥教育PYTHON相关基础笔记.pdf

    在马哥教育的PYTHON相关基础笔记中,我们看到几个关键知识点: 1. **推荐书籍**:学习Python时,有几本经典教材值得参考,包括《Python Cookbook》、《Learn Python the Hard Way》、《Google's Python Class》以及...

    小甲鱼python教程笔记

    小甲鱼 Python 教程笔记 本教程笔记涵盖了 Python 的基础知识点,包括变量、字符串、列表、元组、布尔类型、逻辑运算符、循环结构、列表访问、成员资格运算符、is 运算符、引用和拷贝、列表推导式、元组的使用、...

    Python学习笔记(干货) 中文PDF完整版.pdf

    这份"Python学习笔记"涵盖了从环境搭建到基础语法,再到数据类型和控制结构等关键知识点,旨在为初学者提供全面的学习指导。 首先,1.1章节介绍了Python的基础,包括Python的起源和历史。Python是由Guido van ...

    python笔记.md

    python笔记.md

    个人笔记本.rar python 笔记本 tkinter

    【个人笔记本】是一款基于Python编程语言的开源笔记应用,它集成了Tkinter库,用于创建图形用户界面(GUI)。Tkinter是Python的标准GUI库,它提供了丰富的控件和布局管理器,使得开发者能够轻松地构建出功能完备的...

    Python笔记 ,python笔记全,Python

    "Python笔记"可能是一份详尽的学习资料,旨在帮助初学者快速掌握Python的基础知识,直至达到能够独立解决问题的程度。这份文档可能包含了从入门概念到进阶主题的全面讲解。 在Python的入门阶段,笔记可能会涵盖以下...

    python笔记大全

    这份《Python笔记大全》强调了Python的基础知识和高级特性,为读者提供了一份全面的学习指南。以下是对该笔记中提到知识点的详细说明: 1. Python的基本组成和模块路径: Python程序是由包组成的,这些包又由模块和...

Global site tag (gtag.js) - Google Analytics