Как найти файл, соответствующий конкретному модулю python?

Поскольку этот поток наткнулся, я собрал несколько точек для новых читателей в this.

Как определено значение this?

Мы используем это подобно тому, как мы используем местоимения в естественных языках, таких как английский: «Джон работает быстро, потому что он пытается поймать поезд». Вместо этого мы могли бы написать «... Джон пытается поймать поезд ».

var person = {    
    firstName: "Penelope",
    lastName: "Barrymore",
    fullName: function () {

    // We use "this" just as in the sentence above:
       console.log(this.firstName + " " + this.lastName);

    // We could have also written:
       console.log(person.firstName + " " + person.lastName);
    }
}

this не присваивается значение, пока объект не вызовет функцию, в которой он определен. В глобальной области действия все глобальные переменные и функции определяются на объекте window. Следовательно, this в глобальной функции относится к (и имеет значение) глобальный объект window.

Когда use strict, this в глобальном и в анонимных функциях, не связанных с каким-либо объектом, имеет значение undefined.

Ключевое слово this g0] наиболее непонятно , когда: 1) мы используем метод, который использует this, 2) мы назначаем метод, который использует this для переменной, 3) функция, которая использует this, передается как функция обратного вызова и 4) this используется внутри замыкания - внутренней функции. (2)

table [/g10]

Что содержит будущее

Определено в сценарии ECMA 6 , стрелка- функции принимают привязку this из охватывающей (функциональной или глобальной) области.

function foo() {
     // return an arrow function
     return (a) => {
     // `this` here is lexically inherited from `foo()`
     console.log(this.a);
  };
}
var obj1 = { a: 2 };
var obj2 = { a: 3 };

var bar = foo.call(obj1);
bar.call( obj2 ); // 2, not 3!

Хотя функции-стрелки предоставляют альтернативу использованию bind(), важно отметить, что они по существу отключают традиционный механизм this в пользу более широкого понимания лексического охвата. (1)


Ссылки:

  1. this & amp; Object Prototypes, автор Kyle Simpson. © 2014 Getify Solutions.
  2. javascriptissexy.com - http://goo.gl/pvl0GX
  3. Ангус Кролл - http: // goo .gl / Z2RacU

2
задан amstramgram 3 March 2019 в 20:56
поделиться

1 ответ

редактировать : краткость и уточнение ответа

Быстрый ответ:

В вашем случае строка urlpatterns += url(r'', include('wiki.urls')) добавляет URL-путь для Django, чтобы оценить для какого-то приложения «вики». Исходный код для файла urls.py, если кто-то еще смотрит на этот вопрос, это здесь .

Длинный ответ:

В wiki.urls.py

# line 51
def get_urls(self):
   ... # gets the root urls & adds all other url patterns
   return urlpatterns

# line 249
def get_pattern(app_name="wiki", namespace="wiki", url_config_class=None):
... # warnings etc...
if url_config_class is None:
    url_config_classname = getattr(settings, 'URL_CONFIG_CLASS', None)
    if url_config_classname is None:
        url_config_class = WikiURLPatterns
    else:
        ... # more warning etc...
        url_config_class = import_string(url_config_classname)
urlpatterns = url_config_class().get_urls()

return urlpatterns, app_name, namespace

и в wiki.conf.settings мы находим

]
# line 273
#: Dotted name of the class used to construct urlpatterns for the wiki.
#: Default is wiki.urls.WikiURLPatterns. To customize urls or view handlers,
#: you can derive from this.
URL_CONFIG_CLASS = getattr(
    django_settings,
    'WIKI_URL_CONFIG_CLASS',
    None)

Итак, вы действительно нашли правильный файл (src.wiki.urls.py). Из приведенных выше сегментов видно, что conf.settings по умолчанию определяет URL_CONFIG_CLASS как None. Затем if None url conf определяет класс как WikiURLPatterns (строка 249) и включает в себя URL-адреса, определенные в get_urls (строка 51). Здесь, в get_urls (и предыдущих строках), вы захотите добавить свой собственный код в другие шаблоны URL, представления и приложения.

Однако, эти настройки становятся устаревшими, см. здесь в документации. Итак, копаясь в Git для проекта, вы можете увидеть, что они переопределили это для современного Django. Итак, в wiki.sites.py смотрите строку 75 и далее, чтобы узнать, как создаются экземпляры URL.

Вы также спросили, где была регистрация? Проверьте строку 94 в wiki.sites.py

0
ответ дан theQuantumMechanic 3 March 2019 в 20:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: