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

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

### 成员方法中的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()

```

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

    学习猿地
  • Web前端学习 第7章 Vue基础教程4 组件传值

    1.创建子组件,在src/components/文件夹下新建一个Child.vue 2.Child.vue的中创建props,然后创建一个名为message的属...

    学习猿地
  • Web前端学习 第7章 Vue基础教程4 组件传值

    1.创建子组件,在src/components/文件夹下新建一个Child.vue 2.Child.vue的中创建props,然后创建一个名为message的...

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

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

    学习猿地
  • iOS开发中使用UITableView提高用户体验

    1.在使用了MJRefresh之后,当UITableView滑到底部的时候需要继续上拉(比之前的上拉费力)才能进行刷新。

    用户1451823
  • 【干货】ICCV2017 PoseTrack challenge优异方法:基于检测和跟踪的视频中人体姿态估计

    【导读】近日,针对视频中场景复杂、人物众多等困难挑战,来自Facebook、CMU和达特茅斯学院的研究人员提出了一种新颖的基于检测和跟踪的视频中人体姿态估计方法...

    WZEARW
  • 面向对象编程-OOP1.面向对象编程介绍2.定义类3."魔法"方法4.self

    面向对象(object-oriented ;简称: OO)至今还没有统一的概念 我这里把它定义为:按人们 认识客观世界的系统思维方式,采用基于对象(实体)的概念...

    意气相许的许
  • Python面向对象总结及类与正则表达式

    和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制。

    py3study
  • 面向对象初识

    面向对象编程 —— Object Oriented Programming 简写 OOP

    py3study
  • 浅谈Pytorch与Torch的关系

    Pytorch发布已经有一段时间了,我们在使用中也发现了其独特的动态图设计,让我们可以高效地进行神经网络的构造、实现我们的想法。那么Pytorch是怎么来的,追...

    OLDPAN

扫码关注云+社区

领取腾讯云代金券