Python:如果有的话,它遵循什么编程范式?

Python:如果有的话,它遵循什么编程范式?,python,paradigms,Python,Paradigms,在过去的两天里,我一直在探索decorator,以及如何使用decorator轻松地创建和修改类。这种探索导致了这段代码 Factory.py 下面是Factory.py的一个使用示例 有六种主要的编程范例: 迫切的 声明的 功能的 面向对象 思维方式 象征的 以下哪种范例最能描述Factory.py 四人帮的设计模式几乎都是面向对象的,另一方面是工厂的某种功能。函数式编程和逻辑式编程中都存在设计模式,但大多数设计模式是不同的 此外,你不能说真的有六种范式。它们中的大多数都以某种方式重叠,面向对

在过去的两天里,我一直在探索decorator,以及如何使用decorator轻松地创建和修改类。这种探索导致了这段代码

Factory.py 下面是Factory.py的一个使用示例
有六种主要的编程范例:

迫切的 声明的 功能的 面向对象 思维方式 象征的
以下哪种范例最能描述Factory.py

四人帮的设计模式几乎都是面向对象的,另一方面是工厂的某种功能。函数式编程和逻辑式编程中都存在设计模式,但大多数设计模式是不同的

此外,你不能说真的有六种范式。它们中的大多数都以某种方式重叠,面向对象几乎总是与命令式连接在一起


最后,设计模式实际上并不与范例绑定。范式是引导计算能力的思维方式。设计模式仅仅是为这些范例开发的最佳实践。没有一个真正的理论基础,为什么一个责任链能比一些奇怪的混乱代码更好地工作?

有六个主要的编程范例-真的吗?谁说的?你把编程范例和设计模式混在一起了,我想。。。工厂是一种设计模式,但并不意味着不能使用OOP。这些群体都不一定相互排斥。@Cyber:设计模式确实在某种程度上与范例正交。但模式被开发为解决范例中问题的良好实践。因此,它们源自一种或多种范式。
#!/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
#!/usr/bin/env python

import Factory
import requests
from bs4 import BeautifulSoup as bs    

class App(Factory.Factory):
    pass


Parser = App()

@Parser.register('get_soup')
@Parser.with_callback
def _get(url, *req_args, **req_kw):
    response = requests.get(url, *req_args, **req_kw)
    return bs(response.content)


@Parser.register('get_links')
def _getlinks(soup):
    return soup.find_all('', {'href':True})


print Parser('get_soup', Parser.get_links, 'http://www.google.com')