ประเภทข้อมูลที่เราเรียนรู้ก่อนหน้านี้เป็นคลาส และเราสามารถใช้วิธีการต่างๆ ในคลาสได้
คำจำกัดความของคลาสใช้ คลาสคีย์เวิร์ด และโครงสร้างไวยากรณ์เป็นดังนี้:
className:''''เอกสารคลาส'''เนื้อหา
Name คือชื่อของคลาสที่เราต้องการสร้าง โปรดทราบว่าเราพยายามใช้ตัวพิมพ์ใหญ่เมื่อใช้งาน หากเราใช้สองคำในการตั้งชื่อ ตัวอักษรตัวแรกของทั้งสองคำจะต้องเป็นตัวพิมพ์ใหญ่
เอกสารประกอบของชั้นเรียนคือข้อมูลที่เขียนให้เราเพื่อช่วยให้เราเข้าใจชั้นเรียนนี้
Content คือ เนื้อหาของคลาส ในคลาส รวมถึงตัวแปร วิธีการ คุณสมบัติ ฯลฯ หากเราไม่จำเป็นต้องเพิ่มเนื้อหาชั่วคราวเมื่อกำหนดคลาส เราสามารถใช้คำสั่ง pass เพื่อทำหน้าที่เป็นคำสั่ง placeholder
มากำหนดคลาสกัน:
classSchool: #ด้วยวิธีนี้ เราจึงกำหนดชั้นเรียนชื่อ School'''กำหนดชั้นเรียนของโรงเรียน'''passschool=School()#ด้วยวิธีนี้ เราเรียกชั้นเรียนนี้ว่า print(type(school))#Pass output ลองดูที่ พิมพ์แบบ(โรงเรียน)
ผลลัพธ์คือ:
<class'__main__.โรงเรียน'><__main__.Schoolobjectat0x03372DD8>
จากผลลัพธ์ เราจะเห็นว่าโรงเรียนก็คือชั้นเรียน และจากบรรทัดที่สอง เราจะเห็นว่าโรงเรียนเป็นตัวอย่างหนึ่งของชั้นเรียนของโรงเรียน
เมื่อสร้างคลาส มักจะสร้างเมธอด __init__() เมธอดนี้เป็นวิธีการก่อสร้าง กล่าวคือ เมธอดนี้จะถูกใช้ทุกครั้งที่มีการเรียกคลาส และพารามิเตอร์ก็จะถูกส่งผ่านในเมธอดนี้ด้วย
เมธอดนี้ต้องมีพารามิเตอร์ self ซึ่งต้องเป็นพารามิเตอร์แรกด้วย พารามิเตอร์นี้ชี้ไปที่อินสแตนซ์นั้นเอง และสามารถเข้าถึงคุณสมบัติและวิธีการที่มีอยู่ในคลาสนี้ได้
ดูตัวอย่างต่อไปนี้:
classSchool: #ด้วยวิธีนี้เราจะกำหนดคลาส ถ้าเราต้องการเรียกคลาสนี้ว่า ''define a school class''' def__init__(self):print('นี่คือ __init()__ method')def__judge__( self) :print('ตัดสินว่าวิธีนี้เรียกว่า')school=School()
ผลลัพธ์คือ:
นี่คือ __init()__ วิธีการ
จากผลลัพธ์ เราจะเห็นว่าตราบใดที่คลาสนี้ถูกเรียก เมธอด __init__ จะถูกเรียกโดยอัตโนมัติ แต่เมธอด __judge__ ต่อไปนี้จะไม่ถูกเรียก
นอกจากนี้เรายังสามารถใช้การวนซ้ำเพื่อตรวจสอบว่าจะใช้เมธอด init ทุกครั้งที่เรียกคลาสนี้หรือไม่:
ดูรหัสด้านล่าง:
classSchool:''''กำหนดชั้นเรียนของโรงเรียน'''count=0def__init__(self):School.count+=1print('นี่คือการใช้ %dth ของ __init()__ method'%School.count)foriinrange(5 ): โรงเรียน()
ผลลัพธ์คือ:
นี่คือการใช้วิธี __init()__ ครั้งที่สอง นี่คือการใช้วิธี __init()__ ครั้งที่ 3 นี่คือการใช้ครั้งที่ 5 ของเมธอด __init()__
จากผลลัพธ์เราจะเห็นได้ว่าเราใช้เมธอด init 5 ครั้ง เมื่อเราเรียกคลาสนี้เป็นครั้งแรก จำนวนจะเป็น 0 จากนั้นเมธอด init จะถูกบวกด้วย 1 school.count ในเมธอด init จะเพิ่มขึ้น แต่ละครั้ง 1. จากนั้นการนับด้านนอกสุดจะไม่เปลี่ยนแปลงจากตัวอย่างนี้ เราสามารถเรียนรู้วิธีใช้ init
เมื่อเราเรียนรู้ฟังก์ชัน การถ่ายโอนพารามิเตอร์จะถูกกำหนดไว้ในชื่อฟังก์ชัน และในคลาส เราสามารถถ่ายโอนพารามิเตอร์ได้สะดวกยิ่งขึ้นผ่านเมธอด init
ดูตัวอย่างต่อไปนี้:
classGetAge:def__init__(self,name,age):self.name=nameself.age=ageprint('%s อายุคือ %d'%(ชื่อ,อายุ))GetAge('Xiao Ming',18)
ผลลัพธ์คือ:
เสี่ยวหมิงอายุ 18 ปี
เราต้องสังเกตว่า self เป็นสิ่งจำเป็นและจำเป็นต้องวางไว้ก่อน จากนั้นเมื่อเราเรียกคลาสนี้ จำนวนพารามิเตอร์ (ไม่รวม self) ที่มีอยู่ในเมธอด init จะต้องเท่ากับจำนวนที่เราเรียก ผ่านไป