Python类与对象1(家具存放的举例,烤地瓜的举例)

1、面向对象编程(OOP)
面向过程:根据业务逻辑从上到下写代码
面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程

2、类与对象
类:模型
对象:实体
狗:类, 李四家的大黄狗:对象
奔驰汽车:类,张三的那量奔驰:对象

类(Class)由三部分构成:

类的名称:类名
类的属性:一组数据
类的方法:允许进行操作的方法(行为)

(1)定义一个类:

class 类名:        #类名一般以大写字母开头
    xxxxxxxx

给一个对象添加属性:
对象名.新的属性名 = 值

获取对象的属性的方法,有2种:
(1)对象.属性
(2)定义一个方法,这个方法中使用self.属性名
个人认为对象名.属性名也可以

调用类里面的函数的方法对象名.函数名

不管需不需要给函数传参数,里面的self一定要写,而且出现在最前面。
这里写图片描述
这里写图片描述

如果在类里面定义的函数里面调用属性,需要用到self.属性或者对象名.属性

要调用这个含有属性的函数selfinfo,需要在定义属性后面再调用,否则会报错(python是一个动态的语言)
这里写图片描述
这里写图片描述

__init__(self,a,b):创建完对象会自动调用的函数,也叫初始化方法
可以定义对象时对其传递参数,如fentiao =Cat(A,B)则A和B分别好会传给a和b。
我们也可以在方法里面直接添加属性。
这样一来我们刚创建完对象,该对象就具有了一些属性,这样就可以随便调用了
这里写图片描述
这里写图片描述

__init__()方法
1、是python自动调用的方法,调用时间为为:创建完对象之后,立马自动调用
2、这个方法一般用于完成一些默认事情,比如添加一些属性
3、

class Xxxxx:
    def __init__(self,new_a,new_b):
        self.a= new_a
        self.b=new_b

注意:new_a,new_b是局部变量,并不是对象的属性,如果想在init方法中添加属性,需要使用类似于self.属性 = 值

str()方法
例子:考地瓜
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

例子:存放家具

#!/usr/bin/python
#coding:utf-8
class Home:
    def __init__(self,area):
        self.area = area
        self.containsItem = []
    def __str__(self):
        msg = "当前可用面积为" + str(self.area)
        msg += "\t"
        msg += "家里的物品有:"
        #msg += ",".join(self.containsItem)
        if len(self.containsItem)> 0:
            for item in self.containsItem:
                msg += item.name + ","
            msg = msg[:-1]
        else:
            msg += "None"
        return msg

    #添加一个新物品到家里面
    def addItem(self,item):
        if self.area > item.area:
            self.area -= item.area
        self.containsItem.append(item)

class Bed:
    def __init__(self,name,area):
        self.name = name
        self.area = area

    def __str__(self):
        msg = "床的名字为:" + self.name + "\n" "床的面积为:" + str(self.area)
        return msg
home = Home(124)
print(home)

bed = Bed("席梦思",4)
home.addItem(bed)
print(home)
print(bed)

bed2 = Bed("硬板床",3)
home.addItem(bed2)
print(home)
print(bed2)

这里写图片描述

优化代码
定义两个新方法,,将属性传递过去
这里写图片描述
这里写图片描述
这里写图片描述

存放家具及灯的状态
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值