日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python一个类调用另一个类的方法_python 类静态方法实例化另一个类对象的问题?...

發(fā)布時間:2025/10/17 python 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python一个类调用另一个类的方法_python 类静态方法实例化另一个类对象的问题?... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Logger是使用logging封裝的一個日志類, 每次使用的時候都要實(shí)例化一下:

logger = Logger().getLogger()

logger.info(' message ')

不想每次實(shí)例化, 然后新加了一個類Logg 里面定義了對應(yīng)各個日志級別的靜態(tài)方法:

但是測試一下卻輸出了很多日志, 為什么呢?

import time

from weather.common.libs.logger import Logger

class Logg(object):

@staticmethod

def info(message):

print("info---------------")

log = Logger().getLogger()

log.info(message)

if __name__ == '__main__':

for i in range(3):

Logg.info('testing..')

time.sleep(1)

輸出結(jié)果::::

info---------------

[2019-09-18 17:17:58,679][root][INFO]-logg.py-info:line:14 testing..

info---------------

[2019-09-18 17:17:59,679][root][INFO]-logg.py-info:line:14 testing..

[2019-09-18 17:17:59,679][root][INFO]-logg.py-info:line:14 testing..

info---------------

[2019-09-18 17:18:00,681][root][INFO]-logg.py-info:line:14 testing..

[2019-09-18 17:18:00,681][root][INFO]-logg.py-info:line:14 testing..

[2019-09-18 17:18:00,681][root][INFO]-logg.py-info:line:14 testing..

附加 Logger 類代碼:

class Logger(object):

level_relations = {

'debug': logging.DEBUG,

'info': logging.INFO,

'warning': logging.WARNING,

'error': logging.ERROR,

'crit': logging.CRITICAL

} # 日志級別關(guān)系映射

def __init__(self, logger=None, level='info'):

# create logger

self.logger = logging.getLogger(logger)

self.logger.setLevel(self.level_relations.get(level))

# 創(chuàng)建一個handler,用于寫入日志文件

self._log_time = time.strftime("%Y_%m_%d")

self._log_path = os.path.dirname(os.path.dirname(os.getcwd())) + os.sep + 'log' + os.sep + self._log_time

# check log file path

if not os.path.exists(self._log_path):

os.makedirs(self._log_path)

self._log_name = self._log_path + os.sep + 'log.log'

formatter = logging.Formatter('[%(asctime)s][%(name)s][%(levelname)s]-%(filename)s-%(funcName)s:line:%(lineno)d\t%(message)s')

fh = logging.FileHandler(self._log_name, 'a', encoding='utf-8')

# fh.setLevel(logging.INFO)

fh.setFormatter(formatter)

# 創(chuàng)建一個handler,用于輸出到控制臺

ch = logging.StreamHandler()

# ch.setLevel(logging.INFO)

ch.setFormatter(formatter)

# 給logger添加handler

self.logger.addHandler(fh)

self.logger.addHandler(ch)

# 關(guān)閉打開的文件

fh.close()

ch.close()

def getLogger(self):

return self.logger

總結(jié)

以上是生活随笔為你收集整理的python一个类调用另一个类的方法_python 类静态方法实例化另一个类对象的问题?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。