คลาสและเมธอด __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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- คลาสและเมธอด __init__
- แอตทริบิวต์ของอินสแตนซ์กับคลาส
- เมธอดของอินสแตนซ์และ self
- เมธอดพิเศษ: __str__ และ __repr__