前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python面向对象日志类的封装#学习猿地

Python面向对象日志类的封装#学习猿地

作者头像
学习猿地
发布2020-03-19 17:09:19
3740
发布2020-03-19 17:09:19
举报
文章被收录于专栏:学习猿地学习猿地

### 成员方法中的self

+ self在方法中只是一个形参,并不是关键字

+ self 单词本身的意思 自己

+ self 在类的方法中 代表 当前这个对象

+ self 代表调用这个方法的对象,谁调用了这个方法,self就代表谁

+ self 就可以在类的内部代替对象进行各种操作

### 方法的分类

+ 含有self或者可以接受对象作为参数的方法: 非绑定类方法

+ 不含self或者不能接受对象作为参数的方法:绑定类方法

非绑定类方法,可以使用对象去访问

绑定类方法,只能通过类去访问

----

### 魔术方法

> 魔术方法也和普通方法一样都是类中定义的成员方法

> 魔术方法不需要去手动调用的,魔术方法会在某种情况下,自动触发(自动执行)

> 魔术方法还有一个比较特殊的地方:就是多数的魔术方法 前后都有两个连续的下划线

> 魔术方法不是我们自己定义的,而是系统定义好的,我们来使用

#### `__init__`初始化方法

```

__init__ 初始化方法

触发机制:在通过类实例化对象后,自动触发的一个方法

作用: 可以在对象实例化后完成对象的初始化(属性的赋值,方法的调用。。)

应用场景: 文件的打开,数据的获取。。。干活前的一些准备功能。。。

```

#### `__del__`析构方法

```

__del__ 析构方法

触发机制:析构方法会在对象被销毁时自动触发

作用:关闭一些开发的资源

注意:是对象被销毁时触发了析构方法,而不是析构方法销毁了对象

对象会在哪些情况下被销毁?

1。 当程序执行完毕,内存中所有的资源都会被销毁释放

2。 使用 del 删除时

3。 对象没有被引用时,会自动销毁

```

示例:

> 定义一个类,完成一个日志的记录

> 调用这个对象的时候,传递一个日志信息

> 这个对象会创建一个文件,开始写入,并在最后关闭这个文件

```python

import time

class writeLog():

# 成员属性

# 文件的路径

fileurl = './'

# 日志文件的名称

filename = '2019-09-19'

# 初识化 打开文件

def __init__(self):

#完成文件的打开

print('初始化方法触发类。完成文件的打开')

self.fileobj = open(self.fileurl+self.filename,'a+',encoding='utf-8')

# 写日志的方法

def log(self,s):

print(f'把日志:{s} 写入文件中')

# 析构方法

def __del__(self):

print('析构方法触发了,关闭打开的文件')

# 在对象被销毁时,关闭在初始化方法中打开的文件对象

self.fileobj.close()

```

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档