Create a Class

class គឺ​ជា​វត្ថុ​ដែល​ជា​កន្លែង​មួយ​សំរាប់​បង្កើត​វត្ថុ​ផ្សេង​ៗ​ទៀត ទុក​សំរាប់​យក​ទៅ​ប្រើ​នៅពេល​ក្រោយ​ទៀត​។ ដើម្បី​បង្កើត​ថ្នាក់ យើង​ត្រូវ​ធ្វើ​ដូច​ខាងក្រោម​នេះ៖

class Area():
    pi = 3.14

    def rectangle(self):
        area = width * height
        print('The area of the rectangle is', area)

ក្រោយ​ពី​ថ្នាក់​ឈ្មោះ Area ត្រូវ​បាន​បង្កើត​ឡើង​នៅ​ក្នុងសតិ​របស់​កំព្យូទ័រ​រួច​មក block នៃ statement នៅ​ក្នុង​ថ្នាក់​នោះ ត្រូវ​បាន​យក​ទៅ​អនុវត្ត​ភ្លាម​មួយ​រំពេច ដែល​ជា​ប្រការ​ធ្វើ​អោយ​ចំនួន​ពិត​ឈ្មោះ pi និង function ឈ្មោះ rectangle() ក៏​ត្រូវ​បាន​បង្កើត​ទុក​នៅ​ក្នុង​ថ្នាក់​នោះ​ដែរ​។

ដូចនេះ ថ្នាក់​ខុស​ពី function នៅ​ត្រង់​ថា block នៃ statement នៅ​ក្នុង​ថ្នាក់ ត្រូវ​យក​ទៅ​អនុវត្ត​ភ្លាម​មួយ​រំពេច បន្ទាប់​ពី​ថ្នាក់​ត្រូវ​បាន​បង្កើត​រួច​ហើយ​។ ចំណែក​ឯ block នៃ statement នៅ​ក្នុង function វិញ មិន​ទាន់​ត្រូវ​យក​ទៅ​អនុវត្ត​ទេ នៅ​ពេល​ដែល function ត្រូវ​បាន​បង្កើត​ឡើង​នោះ​។ block នៃ statement នៅ​ក្នុង function ត្រូវ​យក​ទៅ​អនុវត្ត​តែ​នៅ​ពេល​ណា​ដែល​ function ត្រូវ​បាន call តែ​ប៉ុណ្ណោះ​។

block នៃ statement នៅ​ក្នុង​ថ្នាក់ អាច​ជា​ statement ប្រភេទ​ណា​ក៏​បាន​ដែរ វា​អាច​ជា statement តំរូវ​អោយ​បង្កើត​វត្ថុ​ផ្សេង​ៗ​ទៀត ឬ​ជា statement តំរូវ​អោយ​អនុវត្ត​ statement មួយ​ទៀត​។ ក៏ប៉ុន្តែ ភាគ​ច្រើន​គេ​និយម​ប្រើ​ប្រភេទ​នៃ​បញ្ជា ដែល​តំរូវ​អោយ​បង្កើត​វត្ថុ​ដែល​ជា​ទិន្នន័យ និង​ឬ function នានា​ទុក​នៅ​ក្នុង​ថ្នាក់ សំរាប់​យក​ទៅ​ប្រើ​នៅ​ពេល​ក្រោយ​ៗ​ទៀត​។

គ្រប់​វត្ថុ​ទាំងឡាយ​ដែល​ត្រូវ​បាន​បង្កើត​ទុក​នៅ​ក្នុង​ថ្នាក់ ត្រូវ​ចាត់ទុក​ថា​ជា attribute របស់​ថ្នាក់​។ វត្ថុ​ទាំងនោះ​អាច​ជា function និង​ទិន្នន័យ​ផ្សេង​ៗ​។ function នៅ​ក្នុង​ថ្នាក់​ត្រូវ​ហៅ​ថា method ចំណែក​ឯ​ទិន្នន័យ​នៅ​ក្នុង​ថ្នាក់​វិញ ត្រូវ​ហៅ​ថា data attribute

ដូចនេះ នៅ​ក្នុង​ថ្នាក់​ឈ្មោះ Area() វត្ថុ​ឈ្មោះ pi គឺ​ជា​ data attribute និង function ឈ្មោះ rectangle() គឺ​ជា​ method ។ ម៉្យាង​ទៀត យើង​ត្រូវ​ធ្វើការកត់សំគាល់​ផង​ដែរ​ថា វិធី​ដែល​ជា function នៅ​ក្នុង​ថ្នាក់ ត្រូវ​មាន​ parameter លើស​មួយ ទោះបី​ជា​យើង​មិន​ត្រូវការ​យក​វា​ទៅ​ប្រើការ​ក៏​ដោយ​។ យើង​នឹង​ដឹង​ពី​តួនាទី​នៃ parameter ទី​មួយ​នេះ នៅ​ពេល​ខាង​មុខ​នេះ​។

យ៉ាងណាម៉ិញ ដើម្បី​អោយ​ដឹង​ថា​ថ្នាក់​ឈ្មោះ Area() មាន​អ្វី​ខ្លះ​នៅ​ក្នុង​នោះ យើង​អាច​ប្រើប្រាស់ built-in function help ដោយ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖

class Area():
    pi = 3.14

    def rectangle(self):
        area = width * height
        print('The area of the rectangle is', area)

help(Area)
class Area(builtins.object)
 |  Methods defined here:
 |  
 |  rectangle(self)
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |  
 |  pi = 3.14

ដោយ​ថ្នាក់​ក៏​ជា​វត្ថុ​មួយ​ដូច​ជា​វត្ថុ​ដទៃ​ទៀត​ដែរ ដូចនេះ​យើង​អាច​យក​ឈ្មោះ​របស់​ថ្នាក់​ទៅ​ភ្ជាប់​នឹង​វត្ថុ​ដទៃ​ទៀត​បាន​ដោយ​គ្មាន​បញ្ហា​អ្វី​ឡើយ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ​៖

class Area():
    pi = 3.14

    def rectangle(self):
        area = width * height
        print('The area of the rectangle is', area)

Area = 1000
print(Area)
1000

ដោយ​ថ្នាក់​ក៏​ជា​វត្ថុ​មួយ​ដូច​ជា​វត្ថុ​ដទៃ​ទៀត​ដែរ ដូចនេះ​យើង​អាច​យក​ឈ្មោះ​ជា​ច្រើន​ទៅ​ភ្ជាប់​នឹង​ថ្នាក់​ណា​មួយ ដូច​ជា​ការយក​ឈ្មោះ​ជា​ច្រើន​ទៅ​ភ្ជាប់​នឹង​វត្ថុ​ដទៃ​ទៀត​ដែរ​។

class Area():
    pi = 3.14

    def rectangle(self):
        area = width * height
        print('The area of the rectangle is', area)

Surface = Face = Area
print(Surface)
print(Face)
print(Area)
<class '__main__.Area'>
<class '__main__.Area'>
<class '__main__.Area'>