สมัครเรียนโทร. 085-350-7540 , 084-88-00-255 , ntprintf@gmail.com

Tutorial Python

L16 PYTHON SIMPLE ARITHMETIC L40 PYTHON TUTORIAL INTRO L41 PYTHON GETTING STARTED L42 PYTHON SYNTAX L43 PYTHON COMMENTS L44 PYTHON VARIABLES L45 PYTHON DATATYPE L46 PYTHON NUMBERS L47 PYTHON CASING L48 PYTHON STRINGS L49 PYTHON BOOLEANS L50 PYTHON OPARETORS L51 PYTHON LISTS L52 PYTHON TUPELS L53 PYTHON SETS L54 PYTHON DICTIONARY L55 PYTHON IF ELSE L56 PYTHON WHILE LOOP L57 PYTHON FOR LOOP L58 PYTHON FUNCTION L59 PYTHON LAMBDA L60 PYTHON ARRAYS L61 PYTHON CLASSSES OBJECTS L62 PYTHON INHERITANCE L63 PYTHON ITERATORS L63 PYTHON SCOPE L64 PYTHON MODULES L65 PYTHON DATETIME L66 PYTHON JSON L67 PYTHON REGEX L68 PYTHON PIP L69 PYTHON TRY EXCAPE L70 PYTHON USER INPUT L71 PYTHON FILE OPEN L73 PYTHON STRING FORMATTING L74 PYTHON READ FILE L75 PYTHON WRILE CREATE FILE L76 PYTHON DELETE FILE L90 PYTHON POISSON DISTRIBUTION L90 PYTHON RANDOM INTRODUCTION L91 PYTHON CHI SQUARE DISTRIBUTION L91 PYTHON EXPONENTIAL DISTRIBUTION L92 PYTHON RAYLEIGH DISTRIBUTION L93 PYTHON PARETO DISTRIBUTION L94 PYTHON ZIPF DISTRIBUTION L96 PYTHON RANDOM PERMUTATIONS L97 PYTHON SEABORN L98 PYTHON NORMAL DISTRIBUTION L99 PYTHON DISTRIBUTION L99 PYTHON LOGISTIC DISTRIBUTION L99 PYTHON MULTINOMIAL DISTRIBUTION L99 PYTHON NUMPY SPLITTING ARRAY L99 PYTHON NUMPY UFUNCS L99 PYTHON UNIFORM DISTRIBUTION LM60PYTHON BUILT IN FUNCTIONS LM61PYTHON STRING METHODS LM62PYTHON LIST ARRAY METHODS LM63PYTHON DICTIONARY METHODS LM64PYTHON TUPLE METHODS LM65PYTHON SET METHODS LM66PYTHON FILE METHODS LM67PYTHON KEYWORD LM68PYTHON BUILT IN EXCAPTION LM69PYTHON RANDOM MODULE LM70PYTHON MATH MODULE LM70PYTHON REQUSTS MODULE LM72PYTHON CMATH MODULE LM73PYTHON HOWTO REMOVE DUPLICATES FROM A PYTHON LIST LM74PYTHON HOW TO REVERSE A STRING IN PYTHON LM75PYTHON HOW TO ADD TWO NUMBERS IN PYTHON LM95PYTHON RANDOM DATA DISTRIBUTION

Python Classes and Objects

เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor วันนี้เราจะมาเข้าสู่บท Class and Objects
Python เป็นภาษาโปรแกรมเชิงวัตถุ เกือบทุกอย่างใน Python เป็นอ๊อบเจคที่มีคุณสมบัติและวิธีการต่างๆ Class เป็นเหมือนตัวสร้างอ๊อบเจคหรือ "blueprint"" สำหรับการสร้างอ๊อบเจค
สร้าง class
หากต้องการสร้างคลาสให้ใช้ class
ตัวอย่าง
สร้างคลาสที่ชื่อ MyClass โดยมีคุณสมบัติชื่อ x

class MyClass:
  x = 5
print(MyClass)

ผลลัพธ์

< class '__main__.MyClass' >

การสร้างObjects
ตัวอย่าง
ตอนนี้เราสามารถใช้คลาสชื่อ MyClass เพื่อสร้างอ๊อบเจค

class MyClass:
  x = 5
p1 = MyClass()
print(p1.x)

ผลลัพธ์

5

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

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

p1 = Person("John", 36)
print(p1.name)
print(p1.age)

ผลลัพธ์

john
36

หมายเหตุ: ฟังก์ชัน __init __ () จะถูกเรียกโดยอัตโนมัติทุกครั้งที่มีการใช้คลาสเพื่อสร้างอ๊อบเจคใหม่
Object Methods
เมธอดอ๊อบเจคคือฟังก์ชั่นที่เป็นของอ๊อบเจ็ค ให้เราสร้างในclass Person
ตัวอย่าง
แทรกฟังก์ชั่นที่พิมพ์คำและเรียกใช้งานกับอ๊อบเจค p1

class Person:
  def __init__(self, name, age):
    self.name = name
   self.age = age
  def myfunc(self):
   print("Hello my name is " + self.name)

 p1 = Person("John", 36) 
del p1.age
print(p1.age)

ผลลัพธ์

Traceback (most recent call last):
  File "demo_class7.py", line 13, in
    print(p1.age)
AttributeError: 'Person' object has no attribute 'age'

หมายเหตุ: พารามิเตอร์ self เป็นการอ้างอิงถึงอินสแตนซ์ปัจจุบันของคลาสและใช้เพื่อเข้าถึงตัวแปรที่เป็นของคลาส
The self Parameter
เป็นการอ้างอิงถึงอินสแตนซ์ปัจจุบันของคลาสและใช้เพื่อเข้าถึงตัวแปรที่เป็นของคลาส มันไม่จำเป็นต้องตั้งชื่อตัวเอง นักเรียนสามารถเรียกมันว่าอะไรก็ได้ที่นักเรียนต้องการ แต่มันจะต้องเป็นพารามิเตอร์แรกของฟังก์ชั่นใดๆ ในคลาส
ตัวอย่าง
ใช้คำว่า mysillyobject และ abc แทน self

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age
  def myfunc(self):
   print("Hello my name is " + self.name)
p1 = Person("John", 36)
p1.age = 40
print(p1.age)

ผลลัพธ์

40

Modify Object Properties
นักเรียนสามารถปรับเปลี่ยนคุณสมบัติบนอ๊อบเจคได้ดังนี้
ตัวอย่าง
ตั้งค่าอายุ p1 เป็น 40

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

  def myfunc(self):
    print("Hello my name is " + self.name)

p1 = Person("John", 36)
p1.age = 40
print(p1.age)

ผลลัพธ์

40

Delete Object Properties
นักเรียนสามารถลบคุณสมบัติบนอ๊อบเจคโดยใช้ del()
ตัวอย่าง
ลบคุณสมบัติอายุจากอ๊อบเจ็ค p1

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

  def myfunc(self):
    print("Hello my name is " + self.name)

p1 = Person("John", 36)
del p1
print(p1)

ผลลัพธ์

Traceback (most recent call last):
  File "demo_class7.py", line 13, in
    print(p1.age)
AttributeError: 'Person' object has no attribute 'age'

Delete Objects
นักเรียนสามารถลบอ๊อบเจคโดยใช้ del()
ตัวอย่าง
ลบ object p1

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

  def myfunc(self):
   print("Hello my name is " + self.name)

 p1 = Person("John", 36) 
del p1.age
print(p1.age)

ผลลัพธ์

Traceback (most recent call last):
  File "demo_class8.py", line 13, in
    print(p1)
NameError: 'p1' is not defined

The pass Statement
คำจำกัดความของ class ต้องไม่มีเนื้อหาว่างเปล่า แต่ถ้านักเรียนมีเหตุผลบางอย่างที่มีคำจำกัดความของ class ที่ไม่มีเนื้อหาให้ใส่คำสั่ง pass เพื่อหลีกเลี่ยงError
ตัวอย่าง

class Person:
  pass
# having an empty class definition like this, would raise an error without the pass statement

ในบทความนี้ก็จะพูดถึงการสร้าง Class and Objects ถ้าเราตั้งใจศึกษา เเละหมั่นเขียนโค้ดบ่อยๆ ผมเชื่อว่าเราจะสามารถเป็นนักพัฒนาซอฟต์แวร์ที่เก่งคนนึงได้ครับ  
แปลจาก https://www.w3schools.com/python/python_classes.asp



บทความนี้อาจจะมีที่ผิด กรุณาตรวจสอบก่อนใช้

หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor

ไม่อยากอ่าน Tutorial อยากมาเรียนเลยทำอย่างไร?

สมัครเรียน ONLINE ได้ทันทีที่ https://elearn.expert-programming-tutor.com

หรือติดต่อ

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM

แผนที่ ที่ตั้งของอาคารของเรา

C Article


C++ Article


Java Article


C#.NET Article


VB.NET Article


Python Article


Golang Article


JavaScript Article


Perl Article


Lua Article


Rust Article


Article


Python


Python Numpy


Python Machine Learning



แผนผังการเรียนเขียนโปรแกรม

Link อื่นๆ

Allow sites to save and read cookie data.
Cookies are small pieces of data created by sites you visit. They make your online experience easier by saving browsing information. We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.

Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com

ติดต่อเราได้ที่

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
แผนที่ ที่ตั้งของอาคารของเรา