【面相对象基础语法】【初始化方法init】【内置方法和属性_del__str__】【面向对象封装案例】

面相对象基础语法

dir 内置函数
序号 方法名 类型 作用
01 new 方法 创建对象时,会被 自动 调用
02 init 方法 对象被初始化时,会被 自动 调用
03 del 方法 对象被从内存中销毁前,会被 自动 调用
04 str 方法 返回对象的描述信息,print 函数输出使用

初始化方法

当使用 类名() 创建对象时,会 自动 执行以下操作:
为对象在内存中 分配空间 —— 创建对象
为对象的属性 设置初始值 —— 初始化方法(init)
这个 初始化方法 就是 init 方法,init 是对象的内置方法
init 方法是 专门 用来定义一个类 具有哪些属性的方法!

在 Cat 中增加 init 方法,验证该方法在创建对象时会被自动调用

class Cat:

    def __init__(self):

        print("这是一个初始化方法")
        
        # 定义用 Cat 类创建的猫对象都有一个 name 的属性
        self.name = "Tom"

    def eat(self):
        print("%s 爱吃鱼" % self.name)

# 使用类名()创建对象的时候,会自动调用初始化方法 __init__
tom = Cat()

tom.eat()

改造初始化方法 —— 初始化的同时设置初始值

在开发中,如果希望在 创建对象的同时,就设置对象的属性,可以对 init 方法进行 改造
把希望设置的属性值,定义成 init 方法的参数
在方法内部使用 self.属性 = 形参 接收外部传递的参数
在创建对象时,使用 类名(属性1, 属性2…) 调用

class Cat:

    def __init__(self, name):
        print("初始化方法 %s" % name)
        self.name = name
    ...
    
tom = Cat("Tom")
...

lazy_cat = Cat("大懒猫")
...

内置方法和属性

序号 方法名 类型 作用
01 del 方法 对象被从内存中销毁前,会被 自动 调用 不调用默认最后执行
02 str 方法 返回对象的描述信息,print 函数输出使用 不使用会返回内存地址
del 方法(知道)

class Cat:

    def __init__(self, new_name):

        self.name = new_name

        print("%s 来了" % self.name)

    def __del__(self):

        print("%s 去了" % self.name)

# tom 是一个全局变量
tom = Cat("Tom")
print(tom.name)

# del 关键字可以删除一个对象
del tom

print("-" * 50)

str 方法

注意:str 方法必须返回一个字符串

class Cat:

    def __init__(self, new_name):

        self.name = new_name

        print("%s 来了" % self.name)

    def __del__(self):

        print("%s 去了" % self.name)

    def __str__(self):
        return "我是小猫:%s" % self.name

tom = Cat("Tom")
print(tom)

在这里插入图片描述

面向对象封装案例

目标
封装
小明爱跑步
存放家具

小明爱跑步

需求

小明 体重 75.0 公斤
小明每次 跑步 会减肥 0.5 公斤
小明每次 吃东西 体重增加 1 公斤
提示:在 对象的方法内部,是可以 直接访问对象的属性 的!
代码实现:

# 小明 体重 75.0 公斤
# 小明每次 跑步 会减肥 0.5 公斤
# 小明每次 吃东西 体重增加 1 公斤
# 人类   属性 姓名 体重  方法 吃 跑步

class Ren:
    def __init__(self,name,tizhong):
        self.name = name
        self.tizhong = tizhong
    def __str__(self):
        return "我的名字叫 %s 体重 %.2f 公斤" % (self.name, self.tizhong)

    def chi(self):
        print("%s 是吃货,吃完这顿再减肥" % self.name)
        self.tizhong += 1
    def paobu(self):
        self.tizhong -= 0.5
        print("%s 爱跑步,跑步锻炼身体" % self.name)


xiaoming = Ren("小明",60)
xiaoming.chi()
xiaoming.paobu()
print(xiaoming)

执行结果
在这里插入图片描述

小明爱跑步扩展 —— 小美也爱跑步

上面代码封装全部不变 只在下面加上值就可以
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值