首页 / PYTHON / python之面向对象
python之面向对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python之面向对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4104字,纯文字阅读大概需要6分钟。
内容图文
![python之面向对象](/upload/InfoBanner/zyjiaocheng/633/1c877ec4f024492f9934a4915f507a1a.jpg)
class Students:
??? school = '宏福教育'
??? def run(self):
??????? # return 'running......'
??????? print('running....')
stu1 = Students() stu2 = Students() stu3 = Students() print(Students.school)#数据属性 print(Students.run)#函数属性 ? ? print(stu1.school)#查询属性 stu1.contry = '中国'#添加属性 del stu1.contry#删除类属性 stu1.school = '宏福'#修改属性 #实例化出不同属性的对象
class Students:
??? school = '宏福教育'
??? def __init__(self,name, age, job):
??????? self.name = name
??????? self.age = age
??????? self.job = job
??? def run(self):
??????? # return 'running......'
??????? print('running....')
stu1 = Students('张三', 18, 'IT')
stu2 = Students('王二', 16, 'student')
stu3 = Students('赵五', 19, 'teacher') 封装 封装案例1. 01、封装 1.封装是面相对性一大特点 2.面向对象编程的第一步--将属性和方法封装到一个抽象的类当中 3.外界使用类创建对象,然后让对象调用方法 4.对象方法的细节都被封装在类的内部 02、小明爱跑步 需求 1.小明体重75公斤 2.小明每次跑步都会减肥0.5公斤 3.小明每次吃东西体重会增加1公斤
??? def __init__(self, name, weight):
??????? self.name = name
??????? self.weight = weight
??? def run(self):
??????? self.weight -= 0.5
??? def eat(self):
??????? self.weight += 1
??? def __str__(self):
??????? return '名字:%s\n体重:%s\n' % (self.name, self.weight)
xm = Person('小明', 75)
xm.eat()
xm.run()
print(xm) ? #当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据 封装案例2 需求: 1、房子有户型、总面积、家具名称列表 房子没有任何家具 2、家具有名字和占地面积,其中 席梦思(bed):4平米 衣柜(chest): 2平米 餐桌(table): 1.5平米 3、将以上3个家具添加到房子中 4、打印房子中,要求输出:户型、总面积、剩余面积、家具名称列表 class Items(object):
??? def __init__(self, name, area):
??????? self.name = name
??????? self.area = area
??? def __str__(self):
??????? return '家具名称:%s\n占地面积:%s\n' % (self.name, self.area)
class House(object):
??? def __init__(self, house_type, total_area):
??????? self.house_type = house_type
??????? self.total_area = total_area
??????? self.free_area = total_area
??????? self.items = []
??? def add_item(self, item):
??????? self.free_area = self.free_area - item.area
??????? self.items.append(item.name)
??? def __str__(self):
??????? return '房子类型:%s\n房子总大小:%s\n房间剩余面积:%s\n家具列表:%s\n' % (self.house_type, self.total_area, self.free_area, self.items)
bed = Items('席梦思', 10)
chest = Items('餐桌', 5)
house = House('两室一厅', 100)
house.add_item(bed)
house.add_item(chest)
print(house) ? ? ?封装案例3: 属性可以是另外一个类创建的对象:
??? def __init__(self,gun_type):
??????? self.gun_type = gun_type#初始化枪的型号
??????? self.bullet = 0#初始化子弹的数量
??? def add_count(self, count):#添加子弹
??????? self.bullet += count
??? def shoot(self):#射击
??????? if self.bullet > 0:#假如子弹数量大于0
??????????? self.bullet -= 1# 那就射击,并且减少子弹数量
??????????? print('开火.......%s' % self.bullet)
??????? else:
??????????? print('没有子弹啊,兄弟,别这么坑我啊???')#否则没有就显示没有子弹
class Soldier:#创建一个士兵的类
??? def __init__(self, name,gun=None):
??????? self.name = name#初始化士兵的姓名
??????? self.gun = gun#初始化枪
??? def fire(self):#开火方法
??????? if self.gun:#假如有枪
??????????? self.gun.shoot()#那就射击
??????? else:#不然就显示没有枪
??????????? print('没有枪啊,兄弟,你让我去送死吗??')
ak47 = Gun('AK47')#创建一个枪的对象叫ak47
ak47.add_count(10)#添加10颗子弹
xsd = Soldier('许三多')#实例化一个许三多的士兵对象
xsd.gun = ak47#把枪交到许三多手中
xsd.fire()#开火
内容总结
以上是互联网集市为您收集整理的python之面向对象全部内容,希望文章能够帮你解决python之面向对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。