Programming

ເຂົ້າໃຈພື້ນຖານ OOP ໃນ Python: ຂຽນ Code ໃຫ້ເປັນລະບົບດ້ວຍ Class ແລະ Object

LaoCourse Team5 ນາທີອ່ານ
ເຂົ້າໃຈພື້ນຖານ OOP ໃນ Python: ຂຽນ Code ໃຫ້ເປັນລະບົບດ້ວຍ Class ແລະ Object

ເມື່ອທ່ານເລີ່ມຕົ້ນຂຽນໂປຣແກຣມໃໝ່ໆ, ທ່ານອາດຈະຂຽນທຸກຢ່າງລຽງລົງມາແຕ່ເທິງລົງລຸ່ມ (Procedural Programming). ແຕ່ເມື່ອໂປຣເຈັກຂອງທ່ານໃຫຍ່ຂຶ້ນ, ມີຕົວປ່ຽນຫຼາຍຮ້ອຍຕົວ, ມີ function ເປັນສິບໆອັນ ການຂຽນແບບເກົ່າຈະເຮັດໃຫ້ Code ຂອງທ່ານຫຍຸ້ງເຫຍີງ ແລະ ແກ້ໄຂຍາກຫຼາຍ.

ນີ້ຄືຈຸດທີ່ OOP (Object-Oriented Programming) ຫຼື ການຂຽນໂປຣແກຣມເຊີງວັດຖຸ ເຂົ້າມາມີບົດບາດ. OOP ບໍ່ແມ່ນພາສາໃໝ່, ແຕ່ເປັນ "ຮູບແບບການຄິດ" ທີ່ຊ່ວຍໃຫ້ເຮົາຈັດກຸ່ມ Code ທີ່ກ່ຽວຂ້ອງກັນໄວ້ນໍາກັນ ໂດຍປຽບທຽບທຸກຢ່າງໃຫ້ເປັນ "ວັດຖຸ" (Object) ໃນໂລກຄວາມເປັນຈິງ. ໃນບົດຄວາມນີ້, ເຮົາຈະມາຮຽນຮູ້ຫຼັກການພື້ນຖານຂອງ OOP ໃນພາສາ Python ໄປນໍາກັນ!

ແນວຄວາມຄິດຫຼັກ: Class ແລະ Object

ເພື່ອໃຫ້ເຫັນພາບງ່າຍທີ່ສຸດ, ລອງນຶກພາບວ່າເຮົາກໍາລັງສ້າງເກມຕໍ່ສູ້ໜຶ່ງເກມ (ຄືກັບ Code ໃນຮູບພາບຕົວຢ່າງ).

  1. Class (ແບບແປນ): ປຽບເໝືອນ "ພິມເຂັມ" ຫຼື "ແບບແປນ" ຂອງຕົວລະຄອນ. ມັນບອກວ່າຕົວລະຄອນໜຶ່ງຕົວ ຄວນຈະມີຫຍັງແດ່ (ເຊັ່ນ: ຊື່, ພະລັງຊີວິດ, ພະລັງໂຈມຕີ) ແລະ ສາມາດເຮັດຫຍັງໄດ້ແດ່ (ເຊັ່ນ: ໂຈມຕີ, ຍ່າງ, ປ້ອງກັນ). ແຕ່ Class ຍັງບໍ່ມີຕົວຕົນແທ້ໆ.
  2. Object (ວັດຖຸຈິງ): ຄືຕົວລະຄອນແທ້ໆ ທີ່ຖືກສ້າງຂຶ້ນມາຈາກ Class ນັ້ນ. ເຊັ່ນ: ເຮົາເອົາແບບແປນມາສ້າງເປັນ "ນັກຮົບຊື່ Arthur ມີເລືອດ 100" ແລະ "ນັກເວດຊື່ Merlin ມີເລືອດ 80". ທັງສອງນີ້ຄື Object ທີ່ສ້າງມາຈາກ Class ດຽວກັນ ແຕ່ມີຄ່າພາຍໃນຕ່າງກັນ.

ອົງປະກອບທີ່ສໍາຄັນພາຍໃນ Class

ເມື່ອເຮົາສ້າງ Class ມັນຈະປະກອບດ້ວຍ 2 ສ່ວນຫຼັກຄື:

  • Attributes (ຄຸນລັກສະນະ): ແມ່ນຕົວປ່ຽນ (Variables) ທີ່ເກັບຂໍ້ມູນຂອງ Object ນັ້ນໆ ເຊັ່ນ: ຊື່ (name), ເລືອດ (hp), ພະລັງໂຈມຕີ (damage).
  • Methods (ພຶດຕິກໍາ): ແມ່ນ Function ທີ່ຢູ່ພາຍໃນ Class ເພື່ອກໍານົດວ່າ Object ນີ້ສາມາດເຮັດຫຍັງໄດ້ແດ່ ເຊັ່ນ: ໂຈມຕີ (attack).

ຕົວຢ່າງການນໍາໃຊ້ຈິງ (Code Example)

ເຮົາມາລອງຂຽນ Code ພາສາ Python ສ້າງ Class ຊື່ວ່າ Unit (ຕົວລະຄອນ) ໂດຍອ້າງອີງຈາກແນວຄວາມຄິດໃນຮູບພາບກັນເລີຍ.

# 1. ການສ້າງ Class (ຂຶ້ນຕົ້ນດ້ວຍຕົວໃຫຍ່ສະເໝີ)
class Unit:
    
    # 2. Method ພິເສດສໍາລັບການກໍານົດຄ່າເລີ່ມຕົ້ນເມື່ອ Object ຖືກສ້າງ
    # 'self' ແມ່ນຕົວແທນຂອງ Object ທີ່ກໍາລັງຖືກສ້າງຂຶ້ນມາ
    def __init__(self, name, hp, damage):
        self.name = name       # Attribute ຊື່
        self.hp = hp           # Attribute ພະລັງຊີວິດ
        self.damage = damage   # Attribute ພະລັງໂຈມຕີ
        
    # 3. Method ທົ່ວໄປ (ພຶດຕິກໍາການໂຈມຕີ)
    def attack(self):
        print(f"{self.name} ໂຈມຕີສັດຕູ! ສ້າງຄວາມເສຍຫາຍ {self.damage} ຈຸດ.")
        
    def take_damage(self, amount):
        self.hp = self.hp - amount
        print(f"{self.name} ຖືກໂຈມຕີ! ເລືອດເຫຼືອ {self.hp}")

ຕອນນີ້ເຮົາມີ "ແບບແປນ" ແລ້ວ. ຕໍ່ໄປເຮົາຈະມາສ້າງ Object ຈາກ Class ນີ້ເພື່ອນໍາໄປໃຊ້ງານ:

# ສ້າງ Object ທີ 1
hero = Unit("Arthur", hp=100, damage=25)

# ສ້າງ Object ທີ 2
monster = Unit("Goblin", hp=50, damage=10)

# ຮຽກໃຊ້ງານ Methods ຂອງ Object
hero.attack() 
# ຜົນລັບ: Arthur ໂຈມຕີສັດຕູ! ສ້າງຄວາມເສຍຫາຍ 25 ຈຸດ.

monster.take_damage(25)
# ຜົນລັບ: Goblin ຖືກໂຈມຕີ! ເລືອດເຫຼືອ 25

ຂໍ້ສັງເກດ: ທ່ານຈະເຫັນຄໍາວ່າ self ຢູ່ຕະຫຼອດໃນ Python. ໃຫ້ຈື່ໄວ້ສະເໝີວ່າ ເວລາສ້າງ Method ໃນ Class, ຕ້ອງໃສ່ self ເປັນ parameter ທໍາອິດສະເໝີ ເພື່ອໃຫ້ Method ນັ້ນຮູ້ວ່າມັນກໍາລັງເຮັດວຽກກັບຂໍ້ມູນຂອງ Object ຕົວໃດຢູ່.

ສະຫຼຸບ

ການຂຽນໂປຣແກຣມແບບ OOP ອາດຈະເບິ່ງຄືຍາກ ແລະ ມີຄໍາສັບໃໝ່ໆຫຼາຍໃນຕອນທໍາອິດ ແຕ່ມັນມີຂໍ້ດີມະຫາສານ:

  • ເປັນລະບຽບ (Organized): Code ຖືກຈັດເປັນໝວດໝູ່ໃນ Class ເຮັດໃຫ້ຫາຈຸດແກ້ໄຂໄດ້ງ່າຍ.
  • ນໍາກັບມາໃຊ້ໃໝ່ໄດ້ (Reusable): ຂຽນ Class ດຽວ ສາມາດນໍາໄປສ້າງ Object ໄດ້ບໍ່ຈໍາກັດ (ຄືເຮົາສ້າງ monster ໄດ້ເປັນຮ້ອຍຕົວຈາກ Class ດຽວ).
  • ເບິ່ງເປັນທໍາມະຊາດ (Real-world modeling): ການຄິດແບບ OOP ຄືກັບການຈໍາລອງໂລກແຫ່ງຄວາມເປັນຈິງ ເຮັດໃຫ້ທີມງານເຂົ້າໃຈ Logic ຂອງໂປຣແກຣມໄດ້ກົງກັນງ່າຍຂຶ້ນ.
ແຊຣ໌:

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ

Programming

ເລີ່ມຕົ້ນຮູ້ຈັກກັບ Git ແລະ GitHub: ຕົວຊ່ວຍຈັດການ Code ທີ່ນັກພັດທະນາທຸກຄົນຕ້ອງເປັນ

ທຳຄວາມເຂົ້າໃຈລະບົບ Version Control ຜ່ານ Git ແລະ GitHub ທີ່ຊ່ວຍໃຫ້ການເກັບຮັກສາ Code ແລະ ການເຮັດວຽກເປັນທີມກາຍເປັນເລື່ອງງ່າຍ ບອກລາບັນຫາໄຟລ໌ລຶບ ຫຼື Code ເພ.

5 ນາທີອ່ານ
ເຂົ້າໃຈການເຮັດວຽກຂອງ DOM: ວິທີໃຊ້ JavaScript ສ້າງ ແລະ ຄວບຄຸມໜ້າເວັບ
Programming

ເຂົ້າໃຈການເຮັດວຽກຂອງ DOM: ວິທີໃຊ້ JavaScript ສ້າງ ແລະ ຄວບຄຸມໜ້າເວັບ

ຮຽນຮູ້ພື້ນຖານການຈັດການ DOM (Document Object Model) ເພື່ອໃຊ້ JavaScript ເຂົ້າເຖິງ, ສ້າງໃໝ່ ແລະ ແກ້ໄຂອົງປະກອບເທິງໜ້າເວັບໄຊໄດ້ຢ່າງອິດສະຫຼະ.

6 ນາທີອ່ານ
ອັບເກຣດການຂຽນ JavaScript ຂອງທ່ານດ້ວຍ 3 ຟີເຈີຫຼັກຈາກ ES6
Programming

ອັບເກຣດການຂຽນ JavaScript ຂອງທ່ານດ້ວຍ 3 ຟີເຈີຫຼັກຈາກ ES6

ຮຽນຮູ້ 3 ຟີເຈີພື້ນຖານຂອງ JavaScript ES6 (let, const, Arrow Function, ແລະ Template Literals) ທີ່ຈະຊ່ວຍໃຫ້ການຂຽນ Code ຂອງທ່ານສະອາດຂຶ້ນ ແລະ ເປັນມືອາຊີບ.

5 ນາທີອ່ານ