本内容均来源于b站黑马程序员,仅学习记录使用
1 最基本的创建类
class Cat:
color = 'green'
weight = 10
def climb(self):
print("爬")
cat = Cat()
cat.climb()
2 _ init _ 初始化
在__init__方法内部使用self.属性名=属性初始值 -> 来定义属性,之后实例化的对象就会拥有该属性
class Cat:
def __init__(self,name):
self.name=name
def eat(self):
print("%s 爱吃鱼" % self.name)
tom = Cat('Tom')
tom.eat()
3 练习
3.1 小明跑步练习
class Person:
def __init__(self,name,weight):
self.name=name
self.weight=weight
def run(self):
self.weight -=0.5
print("我叫 %s, 体重是 %.2f 公斤" %(self.name,self.weight))
def eat(self):
self.weight +=1
print("我叫 %s, 体重是 %.2f 公斤" %(self.name, self.weight))
person = Person("小明",75.0)
person.run()
person.eat()
3.2 家具添加练习
class Houseitem:
def __init__(self,name,area):
self.name = name
self.area = area
def __str__(self):
return "%s 占地 %.2f 面积" %(self.name,self.area)
class House:
def __init__(self,type,area):
self.type = type
self.area = area
self.free_area = area
self.list = []
def __str__(self):
return ("户型:%s \n总面积:%.2f[剩余面积:%.2f] \n家具内容:%s"
%(self.type,self.area,
self.free_area,self.list))
def add(self,name):
if name.area > self.free_area:
print("%s 面积太大,无法添加")
return
self.list.append(name.name)
self.free_area -=name.area
bed = Houseitem("席梦思",4)
chest = Houseitem("衣柜",2)
table = Houseitem("桌子",1.5)
my_house = House("两室一厅",100)
my_house.add(bed)
my_house.add(chest)
my_house.add(table)
print(my_house)
以下为输出内容
3.3 士兵突击
(一个对象的属性可以是另一个类实例化的对象)
class Gun:
def __init__(self,gun_name):
self.gun_name = gun_name
self.bullet = 0
def add_bullet(self,number):
self.bullet +=number
def fire(self):
if self.bullet <= 0:
print("%s 没有子弹了,请填充" %self.gun_name)
self.bullet -=1
print("%s 发射,剩余 %d 发子弹" % (self.gun_name,self.bullet))
class Soldier:
def __init__(self,name):
self.name = name
self.gun = None
def fire(self):
if self.gun == None:
print("还没有枪")
return
self.gun.add_bullet(30)
print("%s 已经给 %s 填充 %d 发子弹 " % (self.name,self.gun.gun_name,self.gun.bullet))
self.gun.fire()
soldier = Soldier("许三多")
soldier.gun = Gun("AK-47")
soldier.fire()
|