python支持多种编程范式吗_Python:这遵循什么样的编程范式呢?

news/2024/7/24 10:03:55 标签: python支持多种编程范式吗

在过去的两天里,我一直在探索decorator以及如何使用它们来创建和修改类而不费吹灰之力。这个探索引出了这段代码。在

在工厂.py在#!/usr/bin/env python

import sys

import functools

class Factory(object):

def with_callback(self, func):

postname = func.func_name

def wraped(callback, *args, **kw):

cbname = callback.func_name

print 'Passing {post} to {cb}'.format(post=postname, cb=cbname)

premute = func(*args, **kw)

return callback(premute)

return wraped

def __str__(self):

return str(self.__dict__)

def register(self, name):

def func_wrapper(func):

self.__dict__[name] = func

return func

return func_wrapper

def __getitem__(self, name):

return self.__dict__.get(name, None)

def __setitem__(self, name):

self.register(name)

def __call__(self, name=None, *args, **kw):

return self.__dict__.get(name, None)(*args, **kw)

def copy(self, old):

class DerivedFactory(self.__class__):

def __init__(self):

self.__dict__ = old.__dict__

self.__class__ = old.__class__

return DerivedFactory()

if __name__ == '__main__':

import requests

app = Factory()

@app.register('process_response')

def process_response(response):

print response.content

@app.register('get')

@app.with_callback

def get(url):

return requests.get(url)

x = app('get', app.process_response, 'http://www.google.com')

print x

下面是工厂.py

^{pr2}$

主要有六种编程模式:命令

陈述性的

功能性

面向对象的

逻辑

象征性的

这些范例中哪一个最能描述工厂.py? 在


http://www.niftyadmin.cn/n/1463930.html

相关文章

java jpanel添加图片_Java基础笔试练习(六)

Java基础笔试练习(六)1.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为?A.隐藏B.覆盖C.重载D.Java不支持此特性答案:C解析&#xff1a…

freemarker学习笔记(二)

1&#xff1a;判断和输出注释:<#-- ... -->格式部分,不会输出 FTL指令与HTML标签类似&#xff0c;前面加#&#xff0c;如果是用户自定义指定&#xff0c;则为FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字,日期,布尔值格式化插值:#{expr}或#{expr;format} 根…

python修改xml属性值_使用python操作XML增删改查

使用python操作XML增删改查 什么是XML&#xff1f; XML 指可扩展标记语言&#xff08;EXtensible Markup Language&#xff09; XML 是一种标记语言&#xff0c;很类似 HTML XML 的设计宗旨是传输数据&#xff0c;而非显示数据 XML 标签没有被预定义。您需要自行定义标签。 XML…

es6之扩展运算符 三个点(...)

https://blog.csdn.net/astonishqft/article/details/82899965

python微信公众号开发音乐模块_python微信公众号开发简单流程实现

本文为大家分享了python微信公众号开发的简单过程&#xff0c;供大家参考&#xff0c;具体内容如下 网上有很多微信公众号的开发教程&#xff0c;但是都是好几年前的了&#xff0c;而且很多都是抄袭其他人的&#xff0c;内容几乎一模一样。真的无语了。只好自己总结一下开发的一…

SHIRO权限初探

这几周学习了下shiro权限框架&#xff0c;以前的权限控制都是由我们按照自己的想法&#xff0c;采用过滤器或者自定义filter来控制&#xff0c;在部门内部项目中使用可能还没有什么问题&#xff0c;但后期如果对外开放&#xff0c;可能存在很大的风险。 shiro的学习我看的是开涛…

css3-- transform: translate(-50%,-50%);

代码&#xff1a; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); 当使用&#xff1a;top: 50%;left: 50%;&#xff0c; 是以左上角为原点&#xff0c;故不处于中心位置 translate(-50%,-50%) 作用是&#xff0c;往上&#xff08;x轴&#xff09…