강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Programming Language

Type Python! Correct class usage and object-oriented programming

Develop productively, robustly, securely, and scalably with Python! 🔥

(4.8) 61 reviews

1,031 learners

  • amamov
Python
oop

Reviews from Early Learners

What you will learn!

  • Principles of Object-Oriented Programming

  • Understanding Object Oriented Programming

  • In Python, everything is an object

  • How to do object-oriented programming with Python

  • Using Python Safely and Robustly with Typing

  • How to Apply Object-Oriented Programming in Deep Learning and Web Development

Write robust, secure Python code with object-oriented programming and typing.

Why Learn Object-Oriented Programming in Python ?

One. Easy to maintain!

In procedural programming, code modifications require searching and fixing each piece individually, making it easy to forget what needs to be changed. However, in object-oriented programming, the parts that need to be modified are modularized, making it easy to find and quickly modify the relevant module. This means easier maintenance. Furthermore, classes that are abstracted and encapsulated according to object-oriented programming principles can be easily imported and used by other developers without a deep understanding of the class's internal logic, and can be extended through inheritance.

Two. Productivity increases!

When implementing or researching deep learning, machine learning, or data science applications in Python, it's common to analyze the code's meaning and create comparative code by varying parameters and models. Writing this code in procedural programming can lead to disorganized code and reduced productivity. Rewriting this code in object-oriented programming, which closely approximates the semantics of actual research situations, can result in readable and highly productive code.

3. Commercial large-scale software development possible!

When developing web applications with Python, you'll likely use frameworks like Django, Flask, and FastAPI. In these cases, object-oriented programming (OOP) allows you to create robust software products for reason #1. For this reason, OOP is a widely used technique in the development of large, commercial software products that ensure stability. Therefore, if you're building an application with Python, OOP concepts are essential.

Learn object-oriented programming,
Robust, secure, and scalable development!

With Python object-oriented programming
From web development to data science, machine learning, and deep learning!

Microsoft Yammer(야머) 로고

Object-oriented programming boasts high productivity and stability!
Learn completely with Python .

Object-oriented programming is widely used in large-scale software development and development projects requiring high stability because it makes programs flexible and easy to modify. It also simplifies development and maintenance, and allows for more intuitive code analysis.

The combination of Python's intuitive development tools and object-oriented programming can bring both efficiency and intuitiveness to development.


This is good for people like me

Beginner to Object-Oriented Programming

The concept of OOP
Anyone who wants to know what it is

Type User

Safe and sturdy
Those who want to use Python

Those who find class grammar difficult

People who know conditional statements, functions, and variables, but don't know how to use classes

hands-on worker

Machine learning, web development, etc.
OOP in practice
Those who wish to apply

I've incorporated all four concepts below into my lectures 🧨

One. Understanding object-oriented programming.

Object-oriented programming is a coding technique that closely models the real world, increasing code reusability, maintainability, and productivity. Many excellent software products have been developed while adhering to object-oriented principles.

We'll teach you how to understand object-oriented programming and apply it in practice by creating a robot blueprint based on OOP principles. This process will help you write secure, scalable, and robust code. Furthermore, we'll show you how to apply these principles to meaningful development using real-world frameworks and libraries.

2. How to do object-oriented programming in Python.

Simply using classes isn't object-oriented programming. We'll teach you how to use classes while adhering to fundamental OOP principles. This begins with learning the basics of decorators. Then, you'll understand OOP principles—encapsulation, encapsulation, inheritance, polymorphism, and composition—by directly implementing them in code. Finally, you'll learn how to create and apply stacks and queues, two of the most fundamental data structures in computer science, using object-oriented programming.

3. How to type in untyped Python.

Developing with Python, with its simple, concise syntax and typeless syntax, allows you to accomplish more with less code, resulting in incredible productivity. However , when developing large-scale software with Python, its lack of typing can lead to increased code complexity, making maintenance and collaboration difficult. To address this, Python offers Type Hints. FastAPI , a rising web development framework, also recommends using Type Hints in development. We'll explore how to effectively use Type Hints. We'll also show you how to use the mypy and pyright packages to go beyond type hinting and perform type checking before actual code execution .

4. Refactoring deep learning code using object-oriented programming and analyzing Django code.

Beyond simply sharing knowledge, we'll demonstrate how what you've learned can be applied in real-world settings. First, we'll build on what you've learned by developing a Stack based on a linked list, the most fundamental data structure. We'll also demonstrate how object-oriented programming is applied in deep learning code used in academia and web development.

What's special about my lectures!

  • I won't just teach you class grammar.
    Beyond just teaching the syntax of classes, this course will also explain why object-oriented programming is necessary and how to do it, using a variety of case studies. In fact, the course will demonstrate the syntax with examples that require the use of classes. To apply what you've learned, we'll develop basic data structures based on object-oriented principles and demonstrate practical application examples.
  • This is a lecture that even C++ and Java users can easily listen to.
    Those who have previously learned object-oriented programming in other languages (such as C++ or Java) often find themselves overwhelmed when learning object-oriented programming syntax in Python. This is because, compared to C++ or Java, Python's syntax is largely based on implicit agreements between developers. While Python is also an object-oriented programming language, it possesses unique characteristics that set it apart from C++ and Java. This course will explain these characteristics and explain how they differ from existing languages. This course will serve as a guide for those who have learned object-oriented programming in Python from C++ or Java.
  • We reveal how to write various types of code.
    Python is a dynamically typed language. This allows for rapid development and high productivity, but without typing, maintenance becomes difficult and bugs are harder to debug. Therefore, Python officially introduced type hints. Many existing courses often only cover basic data types (int, float, str, etc.) and then move on. However, this alone makes it difficult to achieve robust typing. This course will cover a variety of types, including union types, optional types, and generic types, in addition to basic data types. This will help you write safe and robust Python code. Furthermore, we will cover more than just type hints; we will also cover type checking techniques.

Recommended for
these people

Who is this course right for?

  • For those who want to know what object-oriented programming is

  • How to do object-oriented programming correctly in Python

  • For those who want to use Python safely and robustly using typing

  • For those who are frustrated with Python's lack of types

  • People who know how to use loops, conditional statements, functions, and variables in Python but don't know how to use classes

  • Anyone who wants to apply object-oriented programming in machine learning, deep learning, data science, and web development

Need to know before starting?

  • Python introductory knowledge (variables, conditional statements, loops, functions)

Hello
This is

5,294

Learners

270

Reviews

336

Answers

4.7

Rating

3

Courses

안녕하세요.  IT 지식 크리에이터, 윤상석입니다. 🎩 
더 유익하고 본질적인 지식 콘텐츠로 많은 가치를 드릴 수 있도록 노력하겠습니다.

- (주)하이퍼이지 대표이사
- (사)한국정보통신네트워크협회 AI분과기술위원
- (주)블루밴드 기술이사
- 前 (주)마로마브 웹 개발자
- 前 소프트웨어 엔지니어 기술 용역 (카카오, 포스코DX, )
- 前 소프트웨어 공학 온/오프라인 교육 다수 (스타트업, GS리테일, 삼성 등)

문의사항, 추가질문, 집필, 강의제안 ==> EndUpFree@gmail.com

Curriculum

All

40 lectures ∙ (5hr 43min)

Published: 
Last updated: 

Reviews

All

61 reviews

4.8

61 reviews

  • 정해온님의 프로필 이미지
    정해온

    Reviews 3

    Average Rating 5.0

    5

    100% enrolled

    Python 객체 지향에 대한 기초 부분들을 재 정립하기 좋았고, 타입 힌팅 부분에서도 언제 typing 모듈에 있는 요소들을 사용하면 좋은 지에 대한 설명을 잘해주셔서 무사히 끝까지 학습 완료 할 수 있었던 것 같습니다. 현재 기준으로 파이썬이 3.11 version 까지 나온 상황인데, 강의와 공식문서를 병행하면서 공부하다보니, 지금은 굳이 typing 모듈을 임포트하지 않고 내장 객체를 이용하여 list[str], tuple[int] 처럼 표현 한다던가, Union, Optional 타입 같은 경우에는 int|None 처럼 "|"을 이용해 처리하는 방법이 추가된 것 같더라구요. 시간 되시면 이런 부분에 대해서도 부가적으로 알려주시면 좋을 듯 합니다. 좋은 강의 감사합니다. :)

    • 정호연님의 프로필 이미지
      정호연

      Reviews 56

      Average Rating 5.0

      5

      100% enrolled

      abc 로 파이썬에서 인터페이스 다루는것도 다루었으면 더 좋았을 것 같아요.

      • ­Will Bae님의 프로필 이미지
        ­Will Bae

        Reviews 1

        Average Rating 5.0

        5

        100% enrolled

        이전까지 대충 알고 있던 부분을 잘 정리하게 되어서 좋습니다. 파이썬에서 타이핑하는 방법도 알게되서 좋네요. 마지막에 보너스 강좌에서 직접 구현해보니 더 좋았던거 같아요. 보너스 강좌 좀 더 풍성하게 하면 3배 비싸도 가성비 강의였을거 같아요.

        • 윤상석
          Instructor

          안녕하세요! Will Bae님 :) 리뉴얼시에 피드백 반영하겠습니다! 감사합니다!

      • 돼지토끼님의 프로필 이미지
        돼지토끼

        Reviews 3

        Average Rating 5.0

        5

        100% enrolled

        이미 파이썬으로 개발을 하고 있는 사람이지만 미쳐 모르고 사용했던 부분들을 좀 더 자세히 알 수 있었던거 같습니다. 기본기가 다져진거 같아서 뿌듯하네요. 감사합니다.

        • namhw417님의 프로필 이미지
          namhw417

          Reviews 38

          Average Rating 4.9

          5

          100% enrolled

          좋은 강의 감사합니다.

          $36.30

          amamov's other courses

          Check out other courses by the instructor!

          Similar courses

          Explore other courses in the same field!