Я пишу пояснення щодо коду для курсу і випадково використовую слова methodта functionвзаємозамінно. Я вирішив повернутися назад і виправити формулювання, але наткнувся на дірку в своєму розумінні.
З того, що я розумію, підпрограма - це, functionякщо вона не діє на екземпляр класу (її ефект обмежується явним входом / виходом), і є, methodякщо вона працює над екземпляром класу (може мати виключати побічні ефекти для екземпляра, які роблять його нечистим)
Тут добре обговорюється тема. Зауважте, що за визначеннями прийнятої відповіді статика methodнасправді повинна бути функцією, оскільки екземпляр ніколи не передається неявно, і він не має доступу до членів будь-якого інстанції.
Однак, маючи це на увазі, чи не повинні статичні methodsфактично бути функціями?
За їх визначенням вони не діють на конкретні екземпляри класу; вони лише "прив'язані" до класу через відношення. Я бачив декілька гарних веб-сайтів, які посилаються на статичні підпрограми як "методи" ( Oracle , Fredosaurus , ProgrammingSimplified ), тому або всі вони оглядають термінологію, або мені щось не вистачає (я здогадуюсь останнього) .
Я хотів би переконатися, що я використовую правильне формулювання.
Хтось може це очистити?