Многие ответы объяснили, как вызвать метод из родителя, который был переопределен в дочернем файле.
Однако
"как вы называете метод родительского класса из дочернего класса? "
также может означать только:
" как вы называете унаследованные методы? "
Вы можете вызывать методы, унаследованные от родительского класса, точно так же, как если бы они были методами дочернего класса, если они не были перезаписаны.
, например. в python 3:
class A(): def bar(self, string): print("Hi, I'm bar, inherited from A"+string) class B(A): def baz(self): self.bar(" - called by baz in B") B().baz() # prints out "Hi, I'm bar, inherited from A - called by baz in B"
да, это может быть довольно очевидным, но я чувствую, что, не указывая на это, люди могут покинуть этот поток с впечатлением, что вам нужно перепрыгнуть через смешные обручи, чтобы получить доступ к унаследованным методам в python. Тем более, что этот вопрос высоко оценивает поиск «как получить доступ к методу родительского класса в Python», а OP написан с точки зрения кого-то нового для python.
Я нашел: https: //docs.python.org/3/tutorial/classes.html#inheritance, чтобы быть полезными для понимания того, как вы получаете доступ к унаследованным методам.
Вы можете использовать якорь ^
, чтобы утверждать начало строки, и использовать отрицательный прогноз, чтобы утверждать, что справа не то, что вы хотите сопоставить.
Обратите внимание, что вам нужно экранировать точку, чтобы буквально соответствовать ей, и вы можете опустить последнюю часть (\/.*)?
.
Если вы не используете группы захвата для последующего использования, вы также можете превратить их в группы без захвата (?:)
.
^(?!Referer:(https?(:\/\/))?(www\.)?test\.com).+$
О шаблоне
^
Начало строки (?!
Отрицательный взгляд чтобы утверждать, что справа не соответствует Referer:(https?(:\/\/))?(www\.)?test\.com
Соответствует вашему шаблону )
Закрыть отрицательный прогноз .+
Соответствовать любой символ кроме новой строки 1+ раз $
Утверждать конец строки Попробуйте это регулярное выражение:
^(?!.*Referer:(http(s)?(:\/\/))?(www\.)?test.com(\/.*)?).*$
Хороший способ отрицать свое регулярное выражение - использовать отрицательный взгляд.
Объяснение:
Конструкция с отрицательным прогнозом представляет собой пару круглых скобок, с открывающей скобкой, за которой следует знак вопроса и восклицательный знак Внутри lookahead [есть любой шаблон регулярных выражений].
Рабочий пример: https://regex101.com/r/QJfeBB/1