这个是装饰器类。

class PostCache:

def __init__(self, func):

self.func = func

self.redis = redis.StrictRedis()

def __call__(self, url_list):

url_not_cached = []

for url in url_list:

if self.redis.get(url):

self.redis.expire(url, 600)

else:

url_not_cached.append(url)

self.redis.set(url, '1')

self.redis.expire(url, 600)

return self.func(url_not_cached)

这个是要被装饰的方法。

@rediscache.PostCache

def __get_content_list(self, url_list):

content_list = []

for url in url_list:

content_list.append(self.get_content(url))

time.sleep(config_intervaltime())

return content_list

然后报错

File "crawler.py", line 28, in get_posts

post_content_list = self.__get_content_list(url_list)

TypeError: __call__() missing 1 required positional argument: 'url_list'

该如何解决呢?

python类修饰器_Python 中使用类修饰器修饰类方法如何处理 self?相关推荐

  1. python元类的使用_python中元类用法实例

    本文实例讲述了python中元类用法,分享给大家供大家参考.具体方法分析如下: 1.元类(metaclass)是用来创建类的类 2.type(object):返回一个对象的类型,与object.__c ...

  2. python中类的用法_Python中的类和方法使用举例

    成员变量 对象的创建 创建对象的过程称之为实例化,当一个对象被创建后,包含三个方面的特性对象聚丙属性和方法, 句柄用于区分不同的对象, 对象的属性和方法,与类中的成员变量和成员函数对应, obj = ...

  3. python类的应用_python中文件类的应用

    python中对文件.文件夹的操作需要涉及到os模块和shutil模块. 创建文件: 1) os.mknod("test.txt") 创建空文件 2) open("tes ...

  4. java中类的修饰符_Java中的类修饰符

    之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了...只要把类的属性改成默认的就可以了,也 ...

  5. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  6. scala和java类_Scala(和Java)中的类和类型有什么区别?

    当你说"打字"时,我会假设你的意思是静态类型.但我很快就会讨论动态类型. 静态类型是程序的一部分的属性,可以静态证明(静态意味着"不运行它").在静态类型语言中 ...

  7. java的四个访问修饰符_Java中的四种访问修饰符

    Java中修饰符分为两种:访问修饰符和非访问修饰符.修饰符中,有一些修饰符可以既可以修饰类,也可以修饰方法,但是有一些修饰符只能修饰符方法. 今天这篇文章先介绍一下四种访问修饰符. 1.private ...

  8. python在类内部使用装饰器_python – 如何在类中使用装饰器

    我知道有类似的问题,但我的情况有些不同:参考代码: class MyClass(object): def __init__(self, log_location) self.logs = loggin ...

  9. python编写ATM类_Python中编写类的各种技巧和方法

    有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling).你可以把它当作一个教程, ...

最新文章

  1. 2018年中国人工智能行业研究报告|附下载
  2. ubuntu20.0.4更新至中文环境 | 具体步骤 + 图文详解
  3. 原生php开发cms,海洋cms视频内容管理系统v10.3 原生PHP代码+影视管理系统+视频点播系统+开源CMS...
  4. docker mysql 主从配置
  5. [转载] 5.2 calendar--通用日期的相关函数(4)
  6. 软件测试常见断言,5.6 postman 常用的断言
  7. JAVA-Servlet操纵方法
  8. 华南理工大学计算机专业研究生分数线,2020华南理工大学研究生分数线汇总(含2016-2020历年复试)...
  9. JEP 290 初识
  10. [人工智能]动物专家系统work
  11. 信息论与编码冯桂周林著答案_信息论与编码技术+(冯桂+林其伟+陈东华+著)+清华大学出版社+课后答案.pdf...
  12. 复旦大学与国网上海共建“电力大数据实验室”
  13. 计算机右键无法新建excel2007,右键无法新建Excel
  14. 数据结构第二章 线性表
  15. 注册【小程序】和注册页面
  16. 俺是郭德纲先生的忠实非现场 听众+观众
  17. php 作业 的背景,新课课程背景下中学语文作业布置的思考(网友来稿)a href=/friend/list.php(教师中心专稿)/a...
  18. 中国地区NPM使用可能最快的方法-记mirror-config-china的使用
  19. Windows系统的桌面部署Desktop Deployment(4)
  20. iOS 边学边记 HLS协议 m3u8 ts详解

热门文章

  1. 通过bin-log对mysql进行数据恢复
  2. 网站暴库原理与方法剖析
  3. 我是WPF菜鸟之(4)---关于XAML与逻辑代码
  4. Revit二次开发示例:AutoUpdate
  5. ComboBox控件值对类
  6. python随机读取字符_Python random模块(获取随机数)常用方法和使用例子
  7. Git(9)-- 远程仓库的使用
  8. 做了n年程序猿,才知道电脑是这样工作的
  9. Gstreamer之audio转码(二十三)
  10. 【Android多媒体】Android5.0 NuPlayer多媒体框架【1】