อินสแตนซ์เทียบกับเมธอดแบบสแตติกกับคลาสใน Python: ความแตกต่างที่สำคัญ

อินสแตนซ์เทียบกับเมธอดแบบสแตติกกับคลาสใน Python: ความแตกต่างที่สำคัญ

วิธี Python มักจะสร้างความสับสนเมื่อคุณเข้าสู่การเขียนโปรแกรมเชิงวัตถุ (OOP) คู่มือนี้ครอบคลุมวิธีการหลักสามประเภทใน Python





วิธีการ 3 ประเภทใน Python

มีสามวิธีใน Python: วิธีการอินสแตนซ์ , วิธีการแบบคงที่ , และ วิธีการเรียน .





การรู้ถึงความแตกต่างนั้นไม่จำเป็นเสมอไปในการเขียนโค้ดสคริปต์ Python พื้นฐาน แต่เมื่อคุณเข้าสู่ OOP แล้ว ความแตกต่างจะทำให้เกิดการเปลี่ยนแปลงครั้งใหญ่





หากคุณเพิ่งเริ่มใช้ Python หรือเพียงแค่ต้องการทดลองโดยไม่ต้องติดตั้งอะไรเลย อย่าลืมเข้าไปที่สิ่งเหล่านี้ เชลล์ Python แบบโต้ตอบออนไลน์ .

ก่อนที่เราจะเริ่มต้น: ทำความเข้าใจกับรูปแบบการตกแต่ง

ก่อนที่จะดูความแตกต่าง สิ่งสำคัญคือต้องเข้าใจรูปแบบการออกแบบที่เรียกว่า ลวดลายมัณฑนากร หรือเรียกง่ายๆ ว่า มัณฑนากร .



มัณฑนากรฟังดูซับซ้อน แต่ไม่มีอะไรต้องกลัว มัณฑนากรเป็นเพียงหน้าที่ คุณสามารถเขียนด้วยตนเองหรือใช้สิ่งที่รวมอยู่ในไลบรารีหรือไลบรารีมาตรฐาน Python

มัณฑนากรทำงานเช่นเดียวกับฟังก์ชั่นอื่น ๆ ความแตกต่างในที่นี้คือ นักตกแต่งใช้ตรรกะหรือเปลี่ยนพฤติกรรมของฟังก์ชันอื่นๆ เป็นวิธีที่ยอดเยี่ยมในการนำโค้ดกลับมาใช้ใหม่ และสามารถช่วยแยกตรรกะออกเป็นข้อกังวลแต่ละข้อได้





รูปแบบมัณฑนากรเป็นวิธีที่ Python ต้องการในการกำหนดวิธีสแตติกหรือคลาส นี่คือสิ่งที่ดูเหมือนใน Python:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is decorated! '''
print('I'm a decorated function!')

de = DecoratorExample()
de.example_function()

มัณฑนากรต้องนำหน้าฟังก์ชันหรือการประกาศคลาสทันที พวกเขาเริ่มต้นด้วย @ ลงชื่อ และไม่เหมือนวิธีปกติ คุณไม่จำเป็นต้องใส่วงเล็บต่อท้าย เว้นแต่คุณจะส่งผ่านข้อโต้แย้ง





เป็นไปได้ที่จะรวมนักตกแต่งหลายคน เขียนของคุณเอง และนำไปใช้กับชั้นเรียนเช่นกัน แต่คุณไม่จำเป็นต้องทำอย่างนั้นสำหรับตัวอย่างเหล่านี้

ผสมแรม 4gb กับ 8gb ได้ไหมครับ

วิธีการอินสแตนซ์ใน Python

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

วิธีการอินสแตนซ์ต้องมี ตัวเอง เป็นพารามิเตอร์ แต่คุณไม่จำเป็นต้องส่งผ่านสิ่งนี้ทุกครั้ง Self เป็นอีกคำพิเศษของ Python ภายในเมธอดอินสแตนซ์ใดๆ คุณสามารถใช้ตัวเองเพื่อเข้าถึงข้อมูลหรือเมธอดที่อาจอยู่ในคลาสของคุณได้ คุณจะไม่สามารถเข้าถึงได้โดยไม่ต้องผ่านตัวเอง

สุดท้าย เนื่องจากวิธีการของอินสแตนซ์เป็นวิธีที่ใช้กันทั่วไปมากที่สุด จึงไม่จำเป็นต้องมีมัณฑนากร เมธอดใดๆ ที่คุณสร้างจะถูกสร้างขึ้นโดยอัตโนมัติเป็นเมธอดของอินสแตนซ์ เว้นแต่คุณจะบอก Python เป็นอย่างอื่น

นี่คือตัวอย่าง:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
self.name = 'Decorator_Example'
def example_function(self):
''' This method is an instance method! '''
print('I'm an instance method!')
print('My name is ' + self.name)

de = DecoratorExample()
de.example_function()

NS ชื่อ ตัวแปรสามารถเข้าถึงได้ผ่าน ตัวเอง . สังเกตว่าเมื่อ example_function ถูกเรียก คุณไม่จำเป็นต้องส่งผ่านเข้ามา---Python ทำสิ่งนี้ให้คุณ

วิธีการคงที่ใน Python

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

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is a static method! '''
print('I'm a static method!')

de = DecoratorExample.example_function()

NS @staticmethod มัณฑนากรใช้เพื่อบอก Python ว่าวิธีนี้เป็นวิธีคงที่

วิธีการแบบคงที่นั้นยอดเยี่ยมสำหรับฟังก์ชันยูทิลิตี้ ซึ่งทำงานแยกกัน พวกเขาไม่จำเป็นต้อง (และไม่) เข้าถึงข้อมูลชั้นเรียน พวกเขาควรจะมีอยู่ในตัวเองโดยสมบูรณ์ และทำงานกับข้อมูลที่ส่งผ่านเป็นอาร์กิวเมนต์เท่านั้น คุณสามารถใช้วิธีการแบบคงที่เพื่อเพิ่มตัวเลขสองตัวเข้าด้วยกัน หรือพิมพ์สตริงที่กำหนด

วิธีการเรียนใน Python

วิธีการเรียนเป็นประเภทวิธี OOP ที่สามและสุดท้ายที่ควรรู้ วิธีการเรียนรู้เกี่ยวกับชั้นเรียนของพวกเขา พวกเขาไม่สามารถเข้าถึงข้อมูลอินสแตนซ์ที่เฉพาะเจาะจงได้ แต่สามารถเรียกวิธีการแบบคงที่อื่นๆ ได้

ไม่จำเป็นต้องใช้วิธีการเรียน ตัวเอง เป็นอาร์กิวเมนต์ แต่พวกเขาต้องการพารามิเตอร์ที่เรียกว่า cls . ย่อมาจาก ระดับ และเช่นเดียวกับตัวเอง จะถูก Python ส่งต่อโดยอัตโนมัติ

วิธีการเรียนถูกสร้างขึ้นโดยใช้ @classmethod มัณฑนากร

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@classmethod
def example_function(cls):
''' This method is a class method! '''
print('I'm a class method!')
cls.some_other_function()
@staticmethod
def some_other_function():
print('Hello!')

de = DecoratorExample()
de.example_function()

เมธอดของคลาสอาจเป็นเมธอดที่สร้างความสับสนมากกว่าในสามประเภท แต่พวกมันก็มีประโยชน์ เมธอดของคลาสสามารถจัดการคลาสเองได้ ซึ่งมีประโยชน์เมื่อคุณกำลังทำงานในโครงการขนาดใหญ่และซับซ้อนกว่า

เมื่อใดควรใช้แต่ละวิธี Type

อาจดูเหมือนการตัดสินใจที่ยากลำบากและน่ากังวลในการเลือกระหว่างประเภทของวิธีการใน Python แต่ในไม่ช้า คุณจะคุ้นเคยกับมันด้วยการฝึกฝนเล็กน้อย

วิธีโอน google docs ไปยังบัญชีอื่น

แม้ว่าคุณจะเขียนสคริปต์ตัวเล็กๆ เพื่อความสนุกสนาน การเรียนรู้คุณลักษณะ OOP อื่นของ Python ก็เป็นทักษะที่ดีที่ควรทราบ และสามารถช่วยให้โค้ดของคุณแก้ปัญหาได้ง่ายขึ้น และนำกลับมาใช้ใหม่ได้ง่ายขึ้นในอนาคต

สรุป:

  1. วิธีการอินสแตนซ์: ประเภทวิธีการที่พบบ่อยที่สุด สามารถเข้าถึงข้อมูลและคุณสมบัติเฉพาะของแต่ละอินสแตนซ์ได้
  2. วิธีการแบบคงที่: ไม่สามารถเข้าถึงสิ่งอื่นในชั้นเรียน รหัสที่มีอยู่ในตัวเองโดยสิ้นเชิง
  3. วิธีการเรียน: สามารถเข้าถึงเมธอดที่จำกัดในคลาสได้ สามารถแก้ไขรายละเอียดเฉพาะของคลาสได้

หากบทช่วยสอนนี้ค่อนข้างสูงหรือไม่ใช่สิ่งที่คุณกำลังมองหา ทำไมไม่ลองดูหลักสูตรเหล่านี้เพื่อเปลี่ยนจาก Python Beginner ไปจนถึง Pro 5 เว็บไซต์เหล่านี้เหมาะสำหรับผู้เริ่มต้นใช้งาน Python หากคุณต้องการใช้งาน Python จริงและใช้งานได้จริง แต่เบื่อ Raspberry Pi แล้วล่ะก็ คำแนะนำเกี่ยวกับ ควบคุม Arduino ด้วย Python ?

แบ่งปัน แบ่งปัน ทวีต อีเมล วิธีทำความสะอาดพีซี Windows ของคุณโดยใช้พรอมต์คำสั่ง

หากพีซี Windows ของคุณมีพื้นที่เก็บข้อมูลเหลือน้อย ให้ล้างขยะโดยใช้ยูทิลิตี้ Command Prompt ที่รวดเร็วเหล่านี้

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • การเขียนโปรแกรม
  • การเขียนโปรแกรม
  • Python
เกี่ยวกับผู้เขียน โจ โคเบิร์น(136 บทความที่ตีพิมพ์)

โจสำเร็จการศึกษาด้านวิทยาการคอมพิวเตอร์จากมหาวิทยาลัยลินคอล์น ประเทศอังกฤษ เขาเป็นนักพัฒนาซอฟต์แวร์มืออาชีพ และเมื่อเขาไม่ได้ขับโดรนหรือเขียนเพลง เขามักจะถูกมองว่าถ่ายภาพหรือผลิตวิดีโอ

เพิ่มเติมจาก Joe Coburn

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก