python --面向对象

面向对象

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性【信息】和方法【要完成的事情】。对象是类的实例。类是抽象的,不能直接使用。
实例化:创建一个类的实例,类的具体对象。
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

定义类的格式

class 类(): pass

 将类转换为对象

实例化 —— 实例化指在面向对象编程中,使用类创建对象的过程称为实例化,是将一个抽象的概念具体化的过程

实例化过程 —— 类名 对象名 = 类名(参数1,参数2, ...)

示例1:

小明今年18岁,身高1.75,每天早上要跑步,跑完去吃饭
小美今年16岁,身高1.65,小美不跑步,喜欢吃东西

class People():
    # 初始化方法
    def __init__(self,name,age,height):
        # 将self和name封装在一起,=后name为所传入的值
        self.name = name
        self.age = age
        self.height = height
    # 字符串方法,用来返回字符串
    def __str__(self):
        return 'I am %s' %self.name
    def eat(self):
        print('%s is eating' %self.name)
    def run(self):
        print('%s is running' %self.name)
p1 = People('dsd',24,183)
print(p1.name,p1.age,p1.height)
p1.run()
p1.eat()
print(p1)

 示例2:

1.小明和小美都爱跑步
2.小美体重45.0公斤
3.小明体重75.0公斤
4.每次跑步都会减少0.5公斤
5.每次吃东西都会增加1公斤 

class People():
    def __init__(self,name,weight):
        self.name = name
        self.weight = weight
    def __str__(self):
        return '%s weight is %.2f' %(self.name,self.weight)
    def eat(self):
        self.weight += 1.0
    def run(self):
        self.weight -= 0.5
xiaoming = People('xiaoming',75.0)
xiaoming.eat()
print(xiaoming)
xiaoming.run()
print(xiaoming)
 
xiaomei = People('xiaoming',45.0)
xiaomei.run()
print(xiaomei)
xiaomei.eat()
print(xiaomei)

示例3:

栈:如何用类方法定义一个栈 

class Stack(object):
    def __init__(self):
        # 定义一个空列表,相当于一个空栈,用来存储和读取
        self.stack = []
    #  用来检测长度
    def __len__(self):
        return len(self.stack)
    def top(self):
        # 判断栈是否为空
        if not self.is_empty():
            return self.stack[-1]
        # 抛出异常
        raise Exception('stack is empty!')
    def push(self,element):
        self.stack.append(element)
    def pop(self):
        # 判断栈是否为空
        if self.is_empty():
            raise Exception('stack is empty!')
        else:
            item = self.stack.pop()
            return item
    def length(self):
        return len(self.stack)
    def is_empty(self):
        return len(self.stack) == 0
# 实例化
stack = Stack()
stack.push(1)
stack.push(2)
print(stack.length())
item = stack.pop()
print('The pop item is: %s' %item)
print(stack.top())
print(stack.is_empty())
print(stack.pop())
print(stack.length())
print(stack.is_empty())

 示例4:

1.房子有户型,总面积和家具名称列表
        新房子没有任何的家具

2.家具有名字和占地面积,其中
        床:占4平米
        衣柜:占2平米
        餐桌:占1.5平米
3.将以上三件家具添加到房子中
4.打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表

class Furniture(object):
    def __init__(self,name,area):
        self.name = name
        self.area = area
 
    def __str__(self):
        return '[%s] 占地 (%.2f) 平米' %(self.name,self.area)
# 房子
class House(object):
    def __init__(self,unitType,area):
        # 户型
        self.unitType = unitType
        # 总面积
        self.area = area
        # 家具名称列表
        self.furniture_list = []
        # 剩余面积
        self.free_area = area
    def __str__(self):
        return ' 户型: %s\n 总面积: %.2f\n 剩余面积:%.2f\n 家具列表:%s\n' \
               %(self.unitType,self.area,self.free_area,self.furniture_list)
    def add_fur(self,item):
        self.furniture_list.append(item.name)
        self.free_area -= item.area
 
bed = Furniture('bed',4)
yigui = Furniture('yigui',2)
table = Furniture('table',1.5)
 
home = House('dsd',200)
home.add_fur(bed)
home.add_fur(yigui)
 
print(home)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值