今天学习了面向对象的一部分,内容有类的创建,对象的创建于对象方法的调用,创建多个对象,__init__方法,__str__方法,还有一个所用内容的应用示例,相关笔记如下。
'''
文件说明:
什么是类?
类就是对对象的抽象,对象是类的实例化,Python中通过类来描述对象
如何定义一个类
类名:狗
属性:颜色,大小,年龄,名字
行为:吃,喝,拉,撒,跑,咬人
关于类名:
1 使用大驼峰命名法 首字母大写,其后的每一个单词字母大写
2 不能使用关键字
'''
class Dog:
'''
定义一个狗类
'''
#属性
#方法
def eat(self):
'''
定义狗吃东西的方法
'''
print("狗吃大骨头------")
class Dog:
'''
定义一个狗类
'''
#属性
#方法
def eat(self):
'''
定义狗吃东西的方法
'''
print("狗吃大骨头------")
#创建对象d1
d1=Dog()
#调用对象方法
d1.eat()
'''
文件说明
self:谁调用就指向谁
'''
class Dog:
'''
定义狗类
'''
#属性
#方法
def eat(self):
print("狗吃大骨头")
def introduce(self):
'''
用于狗的自我介绍
'''
print('我是一只%s,今年%d岁了,我的名字叫%s'%(self.type,self.age,self.name))
d1=Dog()
#给对象添加属性
d1.name="捡起"
d1.age=20
d1.type="大咋尊"
d1.introduce()
d2=Dog()
d2.introduce
上图程序运行流程如下图

'''
文件说明:
在Python中有特殊功能的方法叫做魔法方法
__init__方法在类定义的时候被调用
'''
class Dog:
'''
定义狗类
'''
#属性
def __init__(self,name,age,type):#__init__方法中的变量为全局变量
'''
初始化类的属性
:param name:
:param age:
:param type:
'''
# print(name)
# print(age)
# print(type)
self.new_name=name
self.new_age=age
self.new_type=type
#方法
def eat(self):
print("狗吃大骨头")
def introduce(self):
'''
用于狗的自我介绍
'''
print('我是一只%s,今年%d岁了,我的名字叫%s'%(self.new_type,self.new_age,self.new_name))
d=Dog("捡起",20,"大咋尊")
d.introduce()
print(d)
'''
文件说明
'''
class Dog:
'''
定义狗类
'''
#属性
def __init__(self,name,age,type):#__init__方法中的变量为全局变量
'''
初始化类的属性
:param name:
:param age:
:param type:
'''
# print(name)
# print(age)
# print(type)
self.new_name=name
self.new_age=age
self.new_type=type
def __str__(self):
'''
格式化输出对象
'''
return '我是一只%s,今年%d岁了,我的名字叫%s'%(self.new_type,self.new_age,self.new_name)
#方法
def eat(self):
print("狗吃大骨头")
def introduce(self):
'''
用于狗的自我介绍
'''
print('我是一只%s,今年%d岁了,我的名字叫%s'%(self.new_type,self.new_age,self.new_name))
d=Dog("捡起",20,"大咋尊")
print(d)
'''
文件说明:
类 SweetPotato 表示红薯
cookedDString 生的 半生不熟的 熟了 焦了
cookedTime 时间
condiments 调料表
cook()烤地瓜
add_condiments()添加调料
__init__初始化属性
__str__输出烤地瓜的状态
'''
class SweetPotato:
'''
定义烤地瓜
'''
def __init__(self):
'''
初始化属性
'''
self.cookedDString="生的"
self.cookedlevel=0
self.condiments=[]
def __str__(self):
'''
格式化输出红薯状态
'''
return "当前的红薯已经烤制了%d分钟,状态为%s,添加的填料有:%s"%(self.cookedlevel,self.cookedDString,self.condiments)
def cook(self,cookedtime):
'''
烤红薯
'''
self.cookedlevel+=cookedtime
if 0 < self.cookedlevel <= 3:
self.cookedDString="生的"
elif 3 < self.cookedlevel <= 5:
self.cookedDString="半生不熟"
elif 5 < self.cookedlevel <= 10:
self.cookedDString="熟了"
elif self.cookedlevel>10:
self.cookedDString="熟了"
def add_condiments(self,cond):
'''
添加调料
'''
self.condiments.append(cond)
hongshu=SweetPotato()
hongshu.cook(1)
hongshu.cook(1)
hongshu.cook(1)
hongshu.cook(1)
hongshu.cook(1)
hongshu.add_condiments("捡起的脚皮")
print(hongshu)





