Когда “сам” требуется?

Что вам нужно сделать, так это преобразовать lookbehinds в группы захвата, чтобы включить их в строку замены (обратите внимание, что установлен регистрозависимый флаг (i)):

(@[a-z]+,)([\t ]*([a-z]+)[\t ]*(?=\[[a-z]+\])|[\t ]+)

Заменить на [ 112], если вы хотите удалить эти пробелы.

См. живое демо здесь

.

12
задан crystalattice 11 November 2008 в 08:24
поделиться

3 ответа

Вы используете self.attribute ссылаться на атрибут Вашего текущего экземпляра.

Вы используете wx.Frame.__init__() ссылаться на метод родительского класса.

Вы не используете self если Вы только ссылаетесь на локальное имя (переменная) метода (функция), Вы находитесь в.

Это не "эмпирические правила", потому что нет никаких исключений.


Что, вероятно, путает, Вы в этом конкретном примере - то, что панель, кажется, только локальное имя в конструкторе, таким образом, похоже, что панель исчезла бы, после того как Ваш конструктор возвращается.

Если Вы смотрите на документацию к wx.Panel, Тем не менее, Вы будете видеть, что его конструктор присоединяет панель к родительскому окну, таким образом, это продолжит существовать, даже после того, как конструктор возвращается.

Волшебство :)

8
ответ дан 2 December 2019 в 21:45
поделиться

В тех экземплярах, если Вы не используете self затем Вы создадите только локальную переменную того имени. В первом примере, panel создан как локальная переменная и затем сослан позже в функции, но это не будет доступно вне той функции. Действие передачи self к wx. Конструктор панели связал его с текущим объектом некоторым способом, таким образом, это только исчезает, когда функция возвращается.

4
ответ дан 2 December 2019 в 21:45
поделиться

сам всегда требуется при обращении к самому экземпляру, кроме тех случаев, когда, вызывая конструктора базового класса (wx. Кадр. __ init __). Все другие переменные, которые Вы видите в примерах (панель, basicLabel, basicText...) являются просто локальными переменными - не связанный с текущим объектом вообще. Эти имена закончатся, когда метод возвратится - все посаженное в self.foo переживет конец метода и будет доступно в следующем методе (например, self.button).

0
ответ дан 2 December 2019 в 21:45
поделиться
Другие вопросы по тегам:

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