Тема: Питання та відповіді по ООП
Всім привіт! Вивчаю Пайтон, дійшов до ООП і застряг! Буду дуже радий і вдячний, якщо хтось допоможе розібратися!
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Python → Питання та відповіді по ООП
Для відправлення відповіді ви повинні увійти або зареєструватися
Всім привіт! Вивчаю Пайтон, дійшов до ООП і застряг! Буду дуже радий і вдячний, якщо хтось допоможе розібратися!
На превеликий жаль, тут немає телепатів, і доки ви не скажете, на чому саме застрягли, ми вам допомогти не зможемо.
Починаю гадати на картах...
Дякую, що відписали! Екземпляр класу створюється др функції __init__ чи сама функція його створює??
Дякую, що відписали! Екземпляр класу створюється др функції __init__ чи сама функція його створює??
__init__ є не конструктором, а ініціалізатором, тому екземпляр створюється ще до її виклику.
Тоді якщо в класі не вказати функцію __init__, жоден метод класу не зможе обробляти обєкт при посиланні???
Дякую, що відписали! Екземпляр класу створюється др функції __init__ чи сама функція його створює??
Параметр __init__ - self. Логічно було б припустити, що щось має створити цей self перед тим, як передавати його в __init__.
Тоді якщо в класі не вказати функцію __init__, жоден метод класу не зможе обробляти обєкт при посиланні???
Зможе, просто в цього об'єкта початково не буде ніяких атрибутів, тому спроба прочитати їх, попередньо не присвоївши їм ніякого значення, викликатиме помилку під час виконання. Методи, проте, будуть доступними.
Параметр __init__ - self. Логічно було б припустити, що щось має створити цей self перед тим, як передавати його в __init__.
Логічно
Зможе, просто в цього об'єкта початково не буде ніяких атрибутів, тому спроба прочитати їх, попередньо не присвоївши їм ніякого значення, викликатиме помилку під час виконання. Методи, проте, будуть доступними.
Поле об'єкта - це змінна, якій ми присвоюємо об'єкт, а поле класу - це змінна, якій ми присвоюємо параметри у класі, так????
І викликати з об'єкту метод ми можемо завдяки тому, що об'єкт унаслідує всі атрибути класу?
І викликати з об'єкту метод ми можемо завдяки тому, що об'єкт унаслідує всі атрибути класу?
Ви ООП раніше ніяк не вивчали? Вперше почали саме з Python? Якщо так, то для початку важливо зрозуміти, що саме поняття клас - це по суті як схема для побудови об'єктів за нею. Ось є схема-конструкція авто - відповідно, всі авто, що Ви зробите за даною схемою будуть однакові. У схемі може бути метод - крутити руль, сама схема цього ж не дозволить робити. А ось будь-який автомобіль побудований за нею - дозволить крутити руль.
Ви ООП раніше ніяк не вивчали? Вперше почали саме з Python? Якщо так, то для початку важливо зрозуміти, що саме поняття клас - це по суті як схема для побудови об'єктів за нею. Ось є схема-конструкція авто - відповідно, всі авто, що Ви зробите за даною схемою будуть однакові. У схемі може бути метод - крутити руль, сама схема цього ж не дозволить робити. А ось будь-який автомобіль побудований за нею - дозволить крутити руль.
Зрозумів
class ІМ'ЯКЛАСУ:
ЗМІННА = ЗНАЧЕННЯ
…
def ІМ'ЯМЕТОДУ(self, ...):
self.ЗМІННА = ЗНАЧЕННЯ
…
Я так розумію, що ініціалізована змінна автоматично присвоюється об'єкту, як його дані?? Чого в тілі методу знову пишеться self, якщо самий метод має параметр self?
Поле класу - це змінна, спільна для всіх змінних цього класу.
Поле об'єкту - змінна, яка є тільки в цьому об'єкті.
І ось вам короткий лікнеп по парадигмах до ООП включно: http://replace.org.ua/post/76373/#p76373
Поле класу - це змінна, спільна для всіх змінних цього класу.
Поле об'єкту - змінна, яка є тільки в цьому об'єкті.
І ось вам короткий лікнеп по парадигмах до ООП включно: http://replace.org.ua/post/76373/#p76373
Дякую, скористаюсь
class ИМЯКЛАССА: ПЕРЕМЕННАЯ = ЗНАЧЕНИЕ … def ИМЯМЕТОДА(self, ...): self.ПЕРЕМЕННАЯ = ЗНАЧЕНИЕ …
Я так розумію, що ініціалізована змінна автоматично присвоюється об'єкту, як його дані?? Чого в тілі методу знову пишеться self, якщо самий метод має параметр self?
Якщо це фрагмент реального коду - мені дуже цікаво, що змусило вас обрати саме такі назви. Якщо ні, і кирилична частина коду просто для прикладу - то це україномовний форум, виправте.
Для відправлення відповіді ви повинні увійти або зареєструватися