美文网首页
python 用函数代替只有单个方法的类

python 用函数代替只有单个方法的类

作者: 孙广宁 | 来源:发表于2022-05-25 22:12 被阅读0次
7.9 我们有一个之定义了一个方法的类,为了简化代码,如何使用一个函数来代替这个类
  • 可以通过闭包(closure)将其转换为函数。如下
>>> from urllib.request import urlopen
>>> class UrlTemplate:
...     def __init__(self,template):
...         self.template=template
...     def open(self,**kwargs):
...         return urlopen(self.template.format_map(kwargs))
...
>>> y =UrlTemplate("https://brilliantlife.com.cn:8020/admin/")
>>> for line in y.open(name='泰达',fields='s11clv'):
...     print(line.decode('utf-8'))
...
  • 类似这种类可以用一个函数来代替
>>> def urltemplate(template):
...     def opener(**kwargs):
...         return urlopen(template.format_map(kwargs))
...     return opener
...
>>> y =urltemplate("https://brilliantlife.com.cn:8020/admin/")
>>> for line in y.open(name='泰达',fields='s11clv'):
...     print(line.decode('utf-8'))
...
  • 得到的效果是一样的

相关文章

网友评论

      本文标题:python 用函数代替只有单个方法的类

      本文链接:https://www.haomeiwen.com/subject/zwuyprtx.html