ООП в Python, а есть ли? |
Здравствуйте, гость ( Вход | Регистрация )
ООП в Python, а есть ли? |
Litkevich Yuriy |
14.11.2010, 18:37
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Вроде ООП в питоне есть, и вроде наследование есть.
Но почему-то наталкиваюсь на проблему: где method(args) - это метод базового класса или ещё дальше по иерархии.При таком варианте получаю ошибку: Цитата NameError: global name 'method' is not defined почему? неужели нужно писать имя базового класса перед методом и, как следствие, всё время помнить в каком из родительских классов этот метод был введён? |
|
|
Sokoloff |
14.11.2010, 22:14
Сообщение
#2
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
Вроде ООП в питоне есть, и вроде наследование есть. Но почему-то наталкиваюсь на проблему: где method(args) - это метод базового класса или ещё дальше по иерархии.При таком варианте получаю ошибку: Цитата NameError: global name 'method' is not defined почему? неужели нужно писать имя базового класса перед методом и, как следствие, всё время помнить в каком из родительских классов этот метод был введён? В отличие от C++ питон не подставляет по умолчанию self(сишный this). Т.е. правильно вызывать надо так:
|
|
|
Litkevich Yuriy |
14.11.2010, 22:52
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
этот код даёт такую ошибку:Цитата setSizePolicy(sp); NameError: global name 'setSizePolicy' is not defined setSizePolicy(sp); это метод QWidget-а, так как к нему обращатся?например на update() подобной ругани я не видел например на update() подобной ругани я не видел не на него тоже ругается.так унаследованные методы нужно вызывать как свои собственные, вроде интерпретатор перестаёт ругаться. А как быть с методами базового класса, вроде следуя аналогии в конструкторе: Цитата BaseClass.__init__(self) я делаю тоже для другого метода: и получаю такую ошибку:Цитата QWidget.resizeEvent(event); TypeError: descriptor 'resizeEvent' requires a 'PySide.QtGui.QWidget' object but received a 'PySide.QtGui.QResizeEvent' сообщения об ошибке я вообще не понимаю. descriptor - описатель, причём здесь описатель? requires - требует, что значит требует? в качестве аргумента? |
|
|
Litkevich Yuriy |
14.11.2010, 23:40
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 18:00 |