Тема: Питання та відповіді по ООП

Всім привіт! Вивчаю Пайтон, дійшов до ООП і застряг! Буду дуже радий і вдячний, якщо хтось допоможе розібратися!

2

Re: Питання та відповіді по ООП

вся суть ООП розібратися в собі, знаю по собі

3

Re: Питання та відповіді по ООП

На превеликий жаль, тут немає телепатів, і доки ви не скажете, на чому саме застрягли, ми вам допомогти не зможемо.

Подякували: ostap34PHP1

4

Re: Питання та відповіді по ООП

Починаю гадати на картах...

Подякували: ostap34PHP1

5

Re: Питання та відповіді по ООП

спробуй описати приклад на якому застряг.

6

Re: Питання та відповіді по ООП

Дякую, що відписали! Екземпляр класу створюється др функції  __init__ чи сама функція його створює??

7

Re: Питання та відповіді по ООП

olegzavidovsky написав:

Дякую, що відписали! Екземпляр класу створюється др функції  __init__ чи сама функція його створює??

__init__ є не конструктором, а ініціалізатором, тому екземпляр створюється ще до її виклику.

8

Re: Питання та відповіді по ООП

Тоді якщо в класі не вказати функцію  __init__, жоден метод класу не зможе обробляти обєкт при посиланні???

9 Востаннє редагувалося koala (24.02.2017 14:24:16)

Re: Питання та відповіді по ООП

olegzavidovsky написав:

Дякую, що відписали! Екземпляр класу створюється др функції  __init__ чи сама функція його створює??

Параметр __init__ - self. Логічно було б припустити, що щось має створити цей self перед тим, як передавати його в __init__.

Подякували: olegzavidovsky1

10

Re: Питання та відповіді по ООП

olegzavidovsky написав:

Тоді якщо в класі не вказати функцію  __init__, жоден метод класу не зможе обробляти обєкт при посиланні???

Зможе, просто в цього об'єкта початково не буде ніяких атрибутів, тому спроба прочитати їх, попередньо не присвоївши їм ніякого значення, викликатиме помилку під час виконання. Методи, проте, будуть доступними.

Подякували: olegzavidovsky1

11

Re: Питання та відповіді по ООП

koala написав:

Параметр __init__ - self. Логічно було б припустити, що щось має створити цей self перед тим, як передавати його в __init__.

Логічно

12

Re: Питання та відповіді по ООП

P.Y. написав:

Зможе, просто в цього об'єкта початково не буде ніяких атрибутів, тому спроба прочитати їх, попередньо не присвоївши їм ніякого значення, викликатиме помилку під час виконання. Методи, проте, будуть доступними.

Поле об'єкта - це змінна, якій ми присвоюємо об'єкт, а поле класу - це змінна, якій ми присвоюємо параметри у класі, так????

13

Re: Питання та відповіді по ООП

І викликати з об'єкту метод ми можемо завдяки тому, що об'єкт унаслідує всі атрибути класу?

14

Re: Питання та відповіді по ООП

olegzavidovsky написав:

І викликати з об'єкту метод ми можемо завдяки тому, що об'єкт унаслідує всі атрибути класу?

Ви ООП раніше ніяк не вивчали? Вперше почали саме з Python? Якщо так, то для початку важливо зрозуміти, що саме поняття клас - це по суті як схема для побудови об'єктів за нею. Ось є схема-конструкція авто - відповідно, всі авто, що Ви зробите за даною схемою будуть однакові. У схемі може бути метод - крутити руль, сама схема цього ж не дозволить робити. А ось будь-який автомобіль побудований за нею - дозволить крутити руль.

Подякували: olegzavidovsky, koala2

15

Re: Питання та відповіді по ООП

Master_Sergius написав:

Ви ООП раніше ніяк не вивчали? Вперше почали саме з Python? Якщо так, то для початку важливо зрозуміти, що саме поняття клас - це по суті як схема для побудови об'єктів за нею. Ось є схема-конструкція авто - відповідно, всі авто, що Ви зробите за даною схемою будуть однакові. У схемі може бути метод - крутити руль, сама схема цього ж не дозволить робити. А ось будь-який автомобіль побудований за нею - дозволить крутити руль.

Зрозумів

16 Востаннє редагувалося olegzavidovsky (24.02.2017 16:04:55)

Re: Питання та відповіді по ООП

class ІМ'ЯКЛАСУ:
     ЗМІННА = ЗНАЧЕННЯ
     …
     def ІМ'ЯМЕТОДУ(self, ...):
          self.ЗМІННА = ЗНАЧЕННЯ
          …

Я так розумію, що ініціалізована змінна автоматично присвоюється об'єкту, як його дані?? Чого в тілі методу знову пишеться self, якщо самий метод має параметр self?

17 Востаннє редагувалося koala (24.02.2017 15:41:02)

Re: Питання та відповіді по ООП

Поле класу - це змінна, спільна для всіх змінних цього класу.
Поле об'єкту - змінна, яка є тільки в цьому об'єкті.
І ось вам короткий лікнеп по парадигмах до ООП включно: http://replace.org.ua/post/76373/#p76373

Подякували: olegzavidovsky1

18

Re: Питання та відповіді по ООП

koala написав:

Поле класу - це змінна, спільна для всіх змінних цього класу.
Поле об'єкту - змінна, яка є тільки в цьому об'єкті.
І ось вам короткий лікнеп по парадигмах до ООП включно: http://replace.org.ua/post/76373/#p76373

Дякую, скористаюсь

19 Востаннє редагувалося koala (24.02.2017 15:58:47)

Re: Питання та відповіді по ООП

olegzavidovsky написав:
class ИМЯКЛАССА:
     ПЕРЕМЕННАЯ = ЗНАЧЕНИЕ
     …
     def ИМЯМЕТОДА(self, ...):
          self.ПЕРЕМЕННАЯ = ЗНАЧЕНИЕ
          …

Я так розумію, що ініціалізована змінна автоматично присвоюється об'єкту, як його дані?? Чого в тілі методу знову пишеться self, якщо самий метод має параметр self?

Якщо це фрагмент реального коду - мені дуже цікаво, що змусило вас обрати саме такі назви. Якщо ні, і кирилична частина коду просто для прикладу - то це україномовний форум, виправте.

20

Re: Питання та відповіді по ООП

Виправив