0Pricing
Python Academy · บทเรียน

คลาสและเมธอด __init__

กำหนดคลาส สร้างออบเจ็กต์ และเริ่มต้นแอตทริบิวต์

คลาสและเมธอด __init__ เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

การกำหนดคลาส

ใช้คีย์เวิร์ด class เพื่อกำหนดคลาส โดยทั่วไปแล้ว ชื่อคลาสจะใช้รูปแบบ CapWords

class Dog:
    pass

fido = Dog()
print(type(fido))  # <class '__main__.Dog'>

เมธอด __init__

__init__ จะถูกเรียกโดยอัตโนมัติเมื่อสร้างออบเจ็กต์ ใช้เมธอดนี้เพื่อตั้งค่าแอตทริบิวต์ของอินสแตนซ์

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

fido = Dog("Fido", "Labrador")
print(fido.name)   # Fido

อธิบาย self

self หมายถึงอินสแตนซ์ปัจจุบัน และต้องเป็นพารามิเตอร์ตัวแรกของเมธอดอินสแตนซ์ทุกเมธอด Python จะส่งค่าให้โดยอัตโนมัติ

class Counter:
    def __init__(self):
        self.count = 0

    def increment(self):
        self.count += 1

c = Counter()
c.increment()
print(c.count)  # 1

หลายอินสแตนซ์

แต่ละอินสแตนซ์จะมีสำเนาของแอตทริบิวต์อินสแตนซ์ที่ตั้งค่าไว้ใน __init__ เป็นของตนเอง

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

p1 = Point(1, 2)
p2 = Point(5, 7)
print(p1.x, p2.x)  # 1 5

ค่าเริ่มต้นของพารามิเตอร์ใน __init__

กำหนดค่าเริ่มต้นให้พารามิเตอร์ของ __init__ เพื่อทำให้อาร์กิวเมนต์บางตัวไม่จำเป็นต้องระบุ

class Circle:
    def __init__(self, radius=1.0):
        self.radius = radius

c1 = Circle()
c2 = Circle(5)
print(c1.radius, c2.radius)  # 1.0 5

เมธอดอินสแตนซ์

เมธอดที่กำหนดภายในคลาสจะทำงานกับอินสแตนซ์ผ่าน self

class Rectangle:
    def __init__(self, w, h):
        self.w = w
        self.h = h

    def area(self):
        return self.w * self.h

r = Rectangle(4, 5)
print(r.area())  # 20

การเพิ่มแอตทริบิวต์หลังการสร้าง

คุณสามารถเพิ่มแอตทริบิวต์ให้กับอินสแตนซ์หลังการสร้างได้ แต่การประกาศแอตทริบิวต์ทั้งหมดไว้ใน __init__ จะเป็นระเบียบกว่า

class Person:
    def __init__(self, name):
        self.name = name

p = Person("Alice")
p.age = 30      # added after creation
print(p.name, p.age)

ค่าที่ส่งคืนของ __init__

__init__ ต้องส่งคืนค่า None การส่งคืนค่าอื่นจะทำให้เกิด TypeError

class Broken:
    def __init__(self):
        return 42   # TypeError!

# Correct
class OK:
    def __init__(self):
        self.value = 42
        # implicit return None

การตรวจสอบชนิดของอินสแตนซ์

ใช้ isinstance() เพื่อตรวจสอบว่าออบเจ็กต์เป็นอินสแตนซ์ของคลาสหรือไม่

class Animal:
    pass

class Dog(Animal):
    pass

d = Dog()
print(isinstance(d, Dog))     # True
print(isinstance(d, Animal))  # True

แอตทริบิวต์ __dict__

ทุกอินสแตนซ์จะจัดเก็บแอตทริบิวต์ของตนไว้ในพจนานุกรม __dict__

class Book:
    def __init__(self, title, pages):
        self.title = title
        self.pages = pages

b = Book("Python 101", 300)
print(b.__dict__)  # {'title': 'Python 101', 'pages': 300}

การลบแอตทริบิวต์

ใช้ del เพื่อลบแอตทริบิวต์ออกจากอินสแตนซ์ขณะโปรแกรมทำงาน

class Config:
    def __init__(self):
        self.debug = True
        self.version = "1.0"

cfg = Config()
del cfg.debug
print(hasattr(cfg, "debug"))  # False

ตรวจสอบอย่างรวดเร็ว

self มีจุดประสงค์อะไรในเมธอดของคลาส Python

ทบทวน

คลาสคือแม่แบบสำหรับสร้างออบเจ็กต์ __init__ ใช้เริ่มต้นแอตทริบิวต์ของอินสแตนซ์ self หมายถึงออบเจ็กต์ปัจจุบัน และแต่ละอินสแตนซ์จะมีพจนานุกรมแอตทริบิวต์ของตนเอง

คำถามที่พบบ่อย

บทเรียน “คลาสและเมธอด __init__” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “คลาสและเมธอด __init__” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “คลาสและเมธอด __init__”

กำหนดคลาส สร้างออบเจ็กต์ และเริ่มต้นแอตทริบิวต์ คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “คลาสและเมธอด __init__” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. คลาสและเมธอด __init__
  2. แอตทริบิวต์ของอินสแตนซ์กับคลาส
  3. เมธอดของอินสแตนซ์และ self
  4. เมธอดพิเศษ: __str__ และ __repr__
← กลับไปที่ Python Academy