การเขียนโปรแกรมเชิงวัตถุใน python

การเขียนโปรแกรมเชิงวัตถุเป็นวิธีการรวมคุณสมบัติที่เกี่ยวข้องเข้ากับแต่ละวัตถุ

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

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

เราใช้คลาสใน python เพื่อให้เราสามารถจัดการและบำรุงรักษาโค้ดได้มากขึ้น

คลาสและอินสแตนซ์

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

ทีนี้ ถ้าเรากำหนดคลาสที่ชื่อ man และที่มีชื่อและอายุของบุคคล คลาสนั้นระบุว่าชื่อและอายุมีความสำคัญต่อการกำหนดผู้ชาย แต่ไม่มีชื่อหรืออายุของผู้ชาย

อินสแตนซ์คืออ็อบเจ็กต์ที่สร้างขึ้นจากคลาสและมีข้อมูลจริง

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

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

class Man:
  pass

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

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

class Man:
  def __init__(self, name, age):
    self.name = name
    self.age = age

self.age = อายุ: สร้างแอตทริบิวต์ที่เรียกว่าอายุและกำหนดค่าพารามิเตอร์อายุให้กับมัน

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

แอตทริบิวต์ของคลาสคือแอตทริบิวต์ที่มีค่าเท่ากันสำหรับอินสแตนซ์ของคลาสทั้งหมด คุณสามารถกำหนดแอตทริบิวต์ของคลาสโดยกำหนดค่าให้กับชื่อตัวแปรภายนอก__init__ ()

class Man:
  planet = 'earth'
  def __init__(self, name, age):
    self.name = name
    self.age = age

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

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

เมธอดของอินสแตนซ์คือฟังก์ชันที่กำหนดไว้ภายในคลาส และสามารถเรียกได้จากอินสแตนซ์ของคลาสเท่านั้น

class Man:
  def __init__(self,name,age):
    self.name = name
    self.age = age
  def things(self,ability):
    return f"{self.name}\'s ability is {ability}"
  def about(self):
    return f"{self.name} and is {self.age}"
keshav = Man("keshav", 18)
print(keshav.things("sleeping"))
print(keshav.about())

สืบทอดจากคลาสอื่น

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

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

class Man:
  def __init__(self,name,age):
    self.name = name
    self.age = age
  def things(self,ability):
    return f"{self.name}\'s ability is {ability}"
  def about(self):
    return f"{self.name} and is {self.age}"
sr = Man('SR Keshav', 18)
k = Man('Keshav', 18)
print(sr.things('sleep'),";",k.things('eat'))
    
      

class myObj:
  name = "John"
y = myObj()
x = isinstance(y, myObj)

คุณทำมันจนจบ ขอบคุณ!

Suggested posts

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

ตัดตอนมาจาก Small, Sharp Software Tools โดย Brian P. Hogan

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

เมื่อคุณส่งคำขอไปที่ facebook.com คอมพิวเตอร์ของคุณจะค้นหาชื่อโดเมนเพื่อแปลชื่อโดเมนนั้นเป็นที่อยู่ IP เพื่อให้คอมพิวเตอร์ของคุณสามารถเชื่อมต่อได้

วิธีเรียกใช้ปลั๊กอิน ChatGPT ฟรีโดยใช้ Langchain

วิธีเรียกใช้ปลั๊กอิน ChatGPT ฟรีโดยใช้ Langchain

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

Related posts

บทสนทนาอันตราย

บทสนทนาอันตราย

หากเราต้องการจะเติบโตบนโลกใบนี้ต่อไป เราจะต้องสนทนาที่อันตราย คนที่ท้าทายสิ่งที่เราทำ สิ่งที่เรากำลังทำ และสิ่งที่เรากำลังจะทำต่อไป (หรือกำลังวางแผนที่จะทำ)

การฆาตกรรมของจอร์แดน นีลี และปัญหาการเหยียดเชื้อชาติ "ผู้รักชาติ"

สหรัฐฯ สามารถดำเนินขั้นตอนสำคัญในการไม่ถือเอาพฤติกรรมเหยียดเชื้อชาติกับการเป็นชาวอเมริกันที่ดีได้หรือไม่?

การฆาตกรรมของจอร์แดน นีลี และปัญหาการเหยียดเชื้อชาติ "ผู้รักชาติ"

[ทริกเกอร์การแจ้งเตือน: บทความนี้รวมถึงภาพหน้าจอของผู้คนที่ยกย่องฆาตกรจอร์แดน นีลี] ในที่สุดเจ้าหน้าที่บังคับใช้กฎหมายก็ได้ตั้งข้อหาแดเนียล เพนนี ชายผู้บีบคอจอร์แดน นีลีจนเสียชีวิตในข้อหาฆาตกรรมครั้งนั้น และอาจไม่เต็มใจนัก

ทบทวนสื่อ: ความจริง 5 ประการของ McChesney และอนาคตของการสื่อสาร

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

เงินทุนกำจัดคาร์บอนในปีงบประมาณ 24

รายละเอียดคำขอจัดสรรของ Carbon180 ข้ามเส้นทาง

เงินทุนกำจัดคาร์บอนในปีงบประมาณ 24

โดย Alyson Lee ที่ปรึกษาด้านการจัดการภาครัฐ กระบวนการจัดสรรประจำปีของรัฐบาลกลางเป็นหัวใจสำคัญของความพยายามของเราในการให้ทุนสนับสนุนการกำจัดก๊าซคาร์บอนไดออกไซด์ (CDR) ในแต่ละปี Carbon180 จะส่งคำขอไปยังสำนักงานรัฐสภาหลายแห่งเพื่อช่วยชี้แนะว่าเงินดอลลาร์ในปีหน้าจะไหลไปที่ใด