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'>