Python之面向对象基础

目录

1.dir内置函数

2、类的定义

3、方法中的self参数

3.1给对象添加属性

3.2使用self在方法内部输出对象属性

4、初始化方法

4.1初始化方法改造

5、内置方法和属性


1.dir内置函数

dir()传入标识符/数据,可以直接查看对象类的所有属性和方法。

__方法名__格式的方法是python内置的属性/方法

__new__:创建对象时自动调用

__init__:对象被初始化时自动调用

__del__:对象在内存空间中销毁前自动调用

__str__:返回对象描述信息,print()函数输出使用

2、类的定义

注意:类名要使用大驼峰法命名

对象名 = 类名() # 创建类对象

面向对象中引用的概念:

python中使用类创建对象,对象变量中存储着对象在内存中的地址,也就是对象变量引用了对象。

使用print()函数可以输入对象是由哪个类创建以及变量在内存中地址(十六进制)

3、方法中的self参数

3.1给对象添加属性

在类的外部添加属性(不推荐):对象.属性 = 属性值

3.2使用self在方法内部输出对象属性

哪个对象调用方法,self参数就是哪一个对象的引用

调用方法时不需要传递self参数

在方法内部,可以使用self.对象属性访问对象属性,也可以通过self.调用对象的其他方法。

在类的外部,通过对象名.访问对象的属性和方法

在类的内部,通过self.访问对象的属性和方法

4、初始化方法

在使用类名()创建对象时会自动执行以下操作:

1.为对象在内存中分配空间--创建对象

2.为对象的属性设置初始值--init(初始化方法)

init方法用来定义类有哪些属性

self.属性名 = 属性初始化值

定义属性后,使用类创建对象,对象都会带上该属性。

4.1初始化方法改造

如果想在创建对象时,就设置对象的属性,可以对__init__方法进行改造

1.把希望设置的属性值定义为__init__方法的参数

2.在方法的内部,使用self.属性名 = 形参

3.创建对象时,使用类名(属性1,属性2)调用

5、内置方法和属性

class Cat:

    def __init__(self, new_name):
        self.name = new_name
        print("%s 来了" % self.name)

    def __del__(self):
        print("%s去了" % self.name)


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

del tom
# print(tom.name)
print("_" * 20)

__del__方法,对象从内存中销户时自动调用,如果想在对象被销毁前操作什么,可以定义在这个方法里面

__str__方法,默认情况下,print(对象)是输出对象是由哪个类创建以及对象在内存中十六进制地址,可以对__str__方法进行改造,输出想要的内容。

# 对象生命周期:从创建对象开始到调用__del__结束
# __def__方法:当前程序退出时,对象从内存空间自动调用
# 作用:清楚资源操作
class Cat:
    """
    猫类
    """
    def __init__(self, name):
        """
        初始化方法
        :param name:
        """
        self.name = name

    def __str__(self):
        """
        对象描述性信息方法
        :return:
        """
        print("使用print()方法,打印对象时自动调用")
        return "姓名是:%s" % self.name  # 只能返回字符串,不能返回其他数据类型

    def eat(self):
        print("%s爱吃鱼" % self.name)
        # 局部变量作用的范围只是当前方法,如果想让下面方法调用局部变量
        # 需要把局部变量保存为属性
        self.file = open("new.txt", "w", encoding="utf-8")
        self.file.write("hello")  # 当写入文件时报错,程序崩溃,__del__方法还是会执行

    def __del__(self):
        """
        删除的魔法方法
        清楚资源的操作,文件的资源,网络套接字的资源,数据库连接资源,驱动资源等
        :return:
        """
        print("当前程序退出时,对象从内存空间销毁,自动调用")
        print("清除资源操作")
        self.file.close()  # 程序崩溃也要关闭资源操作


tom = Cat("汤姆")
print(tom)
tom.eat()


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值