ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

面向对象

2022-06-01 18:00:43  阅读:141  来源: 互联网

标签:__ name item self area 面向对象 家具


面向对象、类(类名、属性、方法)、创建对象、调用方法、

定义一个类(class):                       

  1、类名   大驼峰命名规则---首字母大写

  2、属性   类包含的属性

  3、方法   类的方法

eg:  class Cat :   # 定义一个Cat类

    def eat (self): # class类中创建一个eat的方法

      pass

    def __init__(self,name,age):   # 创建一个默认方法__init__      类的属性可以供所有对象使用

      self.name = name    # 属性name的值是name

      self.age = age   # 属性age的值是age

  c = Cat ()   # 创建对象c

  d = Cat('张三',18)    # 创建对象d,并传入参数name和age,默认调用类中__init__方法

  d.name  # 可以使用类的name属性   张三

  d.age  # 可以使用类的age属性  18

  c.eat()   # 调用Cat类中的eat方法  

 # c.address = '中国'   #  为c动态绑定一个address属性     对象c独有的属性

 

    

案例:

class HouseItem:  # 定义一个家具类
# 家具属性
def __init__(self, name, area):
self.name = name
self.area = area

def __str__(self): # 此方法适用print()打印
        return f'家具名字{self.name} , 占地面积为{self.area}平米'


# 创建家具对象
bed = HouseItem('席梦思', 4)
chest = HouseItem('衣柜', 2)
table = HouseItem('餐桌', 1.5)


class House: # 定义一个房子类
# 房子的属性
def __init__(self, name, total_area, free_area):
self.name = name # 户型
self.total_area = total_area # 总面积
self.free_area = free_area # 剩余面积
self.item_list = [] # 家具列表,开始为空

def __str__(self):
return f'户型是{self.name}---总面积是{self.total_area}平米---' \
f'剩余面积是{self.free_area}平米---家具列表为{self.item_list}'

# 房子添加家具的方法
def add_item(self, item): # item 家具对象参数
# 判断房子的剩余面积与家具的占地面积关系
if self.free_area > item.area:
# 向家具列表中添加家具 ---向列表中添加数据 append()
self.item_list.append(item.name)
# 修改剩余面积
self.free_area -= item.area # 当前剩余面积-添加家具的占地面积
else:
print('剩余面积不足')


# 创建房子对象
house = House('两室一厅', 100, 100)
# # 添加床
house.add_item(bed) # 这里的bed 对应 add_item()中的item参数
# 添加衣柜
house.add_item(chest)
# 添加餐桌
house.add_item(table)
print(house)

户型是两室一厅---总面积是100平米---剩余面积是92.5平米---家具列表为['席梦思', '衣柜', '餐桌']

标签:__,name,item,self,area,面向对象,家具
来源: https://www.cnblogs.com/tfxbk/p/16333586.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有