-
python的类问题-初识
#!/usr/bin/env python
# -*- coding:utf-8 -*-
class CapWord(object):
def __init__(self,name):
"""初始化方法,传参数"""
self.name=name
self.xiaojun=18
self.xiaoxue=17
self.height=1.70
#魔法方法,在创建类对象时候,自动被调用执行
def __str__(self):
"""方法"""
return '{}老师今年{}岁,身高{}'.format(self.name,self.xiaojun,self.height)
#自己创建的类内函数,只有在被调用时候,才会被执行
def age(self):
self.xiaojun+=1
def heightt(self):
self.height += 0.2
#创建一个类的对象
capword1=CapWord('小君')
capword1.age()
capword1.heightt()
print(capword1)
2.进阶封装
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
封装
"""
class Person(object):
"""
小君老师 体重50kg--->跑步减肥0.5kg 吃东西增加1kg
name weight 初始化
"""
def __init__(self,name,weight):
self.name=name
self.weight=weight
def __str__(self):
return '我是{},体重{}kg'.format(self.name,self.weight)
def run(self):
print('{}爱跑步'.format(self.name))
self.weight-=0.5
def eat(self,num):
print('{}是吃货'.format(self.name))
self.weight+=num*1.5
xiaojun=Person('小君老师',50)
xiaojun.eat(10)
print(xiaojun)
3.类调用
#!/usr/bin/env python
# -*- coding:utf-8 -*-
class HouseItem(object):
def __init__(self,name,area):
self.name=name
self.area=area
def __str__(self):
return '家具是{},占地{}'.format(self.name,self.area)
class House(object):
def __init__(self,huxing,area):
self.huxing=huxing
self.area=area
#剩余面积
self.free_area=area
#默认无家具
self.itme_list=[]
def __str__(self):
return '户型{}\n总面积{}[剩余面积]:{}\n家具{}'.format(self.huxing,self.area,self.free_area,self.itme_list)
def add_itme(self,item):
print('添加的是{}'.format(item))
if item.area>self.free_area:
print('too big,not add')
return
self.itme_list.append(item.name)
self.free_area-=item.area
bed=HouseItem('bed',100)
xiaojun=House('大别墅',1000)
xiaojun.add_itme(bed)
print(xiaojun)
添加的是家具是bed,占地100
户型大别墅
总面积1000[剩余面积]:900
家具['bed']