2017-12-15 14 views
1

Klicken Sie here. In der Latte des Codes. Ich kann den 'Modulname' nicht verstehen. Woher kommt es? Was bedeutet der 'Modulname'?Die Bedeutung von 'Modulname'

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) 

Ich denke, die 'module_name' zum class RequestHandler verwandt ist. Aber ich weiß nicht, was es bedeutet. Lässt es class RequestHandler zu einem Moudle werden? Etwas wie das?

import RequestHandler 
+1

Wahrscheinlich dies auf dem Tracker Github-Repository Problem besser zu fragen. – Nick

Antwort

0

ich die 'module_name' nicht verstehen kann

module_name ist ein Platzhalter für einen Wert, der auf die Funktion add_routes()

Zum Beispiel

add_routes(a, b) 

# New Definition 
a is app 
b is module_name 

n = b.rfind('.') 
... 
genannt übergeben wird

Woher kommt es?

In awesome-python3-webapp wird module_name nur innerhalb add_routes() Funktion verwendet.

Ich denke, der 'Modulname' ist mit der Klasse RequestHandler verwandt. Aber ich weiß nicht, was es bedeutet. Lässt es Klasse RequestHandler zu ein moudle werden? Etwas wie das? Betrachten

:

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

In diesem Fall müssen Sie den Code oben import verwenden können, wie Sie erwähnt:

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

Result: 
foo 
bar 
+0

Oh, ich vergesse Druck! Vielen Dank! –