'module_name'的含义

时间:2017-12-15 03:48:58

标签: python-3.x aiohttp

点击here。 在代码的格子。我无法理解'module_name'。它来自哪里? 'module_name'是什么意思?

def add_routes(app, module_name):
    n = module_name.rfind('.')
    if n == (-1):
        mod = __import__(module_name, globals(), locals())
    else:
        name = module_name[n+1:]
        mod = getattr(__import__(module_name[:n], globals(), locals(), [name]), name)
    for attr in dir(mod):
        if attr.startswith('_'):
            continue
        fn = getattr(mod, attr)
        if callable(fn):
            method = getattr(fn, '__method__', None)
            path = getattr(fn, '__route__', None)
            if method and path:
                add_route(app, fn)

我认为'module_name'与class RequestHandler有关。但我不知道这意味着什么。是否让class RequestHandler成为模样?像这样的东西?

import RequestHandler

1 个答案:

答案 0 :(得分:0)

  

我无法理解'module_name'

module_name是一个值的占位符,该值传递给名为add_routes()的函数

例如,

add_routes(a, b)

# New Definition
a is app
b is module_name

n = b.rfind('.')
...
  

它来自哪里?

awesome-python3-webapp中,module_name仅在add_routes()函数中使用。

  

我认为'module_name'与RequestHandler类有关。但   我不知道这意味着什么。它是否允许类RequestHandler   成为一个模样?像这样的东西?

考虑:

# RequestHandler.py
def add_routes(app, module_name):
    print(app)
    print(module_name)

在这种情况下,您可以像上面提到的import使用上面的代码:

import RequestHandler
a = foo
b = bar
RequestHandler.add_routes(a, b)

Result:
foo
bar