Ninu ikowe yii, a yoo kọ ẹkọ nipa awọn kilasi, awọn olupilẹṣẹ ati ogún ni Python.
Awọn imọran wọnyi ṣe pataki gaan ni eto nla nibiti o nilo awọn oriṣi oriṣiriṣi lati ṣalaye.
kilasi
Awọn kilasi ṣe pataki ni siseto ati pe wọn ko ni pato si Python. Ọpọlọpọ awọn miiran awọn ede siseto atilẹyin ero ti awọn kilasi. A lo awọn kilasi lati ṣalaye awọn iru data tuntun.
Titi di isisiyi, a ti kọ ẹkọ nipa awọn oriṣi data ipilẹ ni Python bii awọn nọmba, awọn okun, ati awọn boolean. Iwọnyi jẹ ipilẹ tabi awọn iru data ti o rọrun ni Python. A tun ti rii tọkọtaya ti awọn oriṣi data eka bi awọn atokọ ati awọn iwe-itumọ.
Lakoko ti awọn iru wọnyi wulo pupọ, wọn ko le lo nigbagbogbo lati ṣe apẹẹrẹ awọn imọran eka. Fun apẹẹrẹ, ronu nipa ero aaye kan, tabi rira rira kan. Kẹkẹ rira kii ṣe boolian tabi atokọ kan. O jẹ iru data ti o yatọ. Nitorinaa a le lo awọn kilasi lati ṣalaye awọn iru tuntun lati ṣe awoṣe awọn imọran gidi.
Bayi, jẹ ki a ṣalaye iru data tuntun ti a pe ni aaye. Iru tuntun yii yoo ni awọn ọna bi a ti ṣayẹwo tẹlẹ.
Eyi ni bii iwọ yoo ṣe:
A bẹrẹ nipa asọye kilasi kan nipa lilo koko-ọrọ “kilasi” ati ni kete lẹhin eyi a fun kilasi wa ni orukọ.
class Point
Bayi, wo apejọ isorukọsilẹ ti Mo ti lo nibi. Mo ti sọ lẹta akọkọ tobi nibi, eyi ni ohun ti a pe ni apejọ isorukọsilẹ pascal. Apejọ yii yatọ si eyiti a lo fun sisọ awọn oniyipada ati awọn iṣẹ fun eyiti a nigbagbogbo lo awọn lẹta kekere ati ya awọn ọrọ lọpọlọpọ ni lilo isale. Ṣugbọn nigba ti awọn kilasi lorukọ, a ko lo ohun underscore lati ya ọpọ awọn ọrọ dipo, a capitalizes akọkọ lẹta ti gbogbo ọrọ.
Lẹhin asọye kilasi wa, a lo oluṣafihan kan eyiti o tumọ si pe ni bayi ti ṣalaye bulọki kan.
class Point:
def move (self):
Ninu bulọọki yii, a le ṣalaye gbogbo awọn iṣẹ tabi awọn ọna ti o jẹ ti awọn aaye. Fun apẹẹrẹ, a le setumo iṣẹ kan ti a npe ni "gbe" fun gbigbe kan ojuami. Ṣe akiyesi pe ni kete ti a ba tẹ akọmọ ṣiṣi, PyCharm laifọwọyi ṣafikun “ara” nibi. Eyi jẹ koko pataki kan ati jẹ ki n pada si eyi laipẹ. Jẹ ki a tẹ sita “gbe” lori ebute naa.
print("move")
Jẹ ki a ṣalaye ọna miiran bii “fa” ki o tẹ sita lori ebute naa.
def draw(self):
print("draw")
A ti pari pẹlu itumọ ti kilasi “ojuami” wa. Pẹlu iru tuntun yii, a le ṣẹda awọn nkan tuntun. Kilasi kan n ṣalaye alaworan tabi awoṣe fun ṣiṣẹda awọn nkan eyiti o jẹ awọn iṣẹlẹ gangan ti o da lori alaworan yẹn. Lati ṣẹda ohun kan, a tẹ orukọ kilasi wa jade lẹhinna pe o gẹgẹbi iṣẹ kan. Eyi ṣẹda ohun titun kan lẹhinna da pada. Lẹhinna a le tọju nkan yẹn sinu oniyipada kan. Jẹ ki n fihan ọ:
Nibi a ti ṣalaye “ojuami 1” eyiti o jẹ aaye onisẹpo mẹta. O le rii pe, a le tẹjade awọn ipoidojuko kọọkan lori ebute naa.
A le lo awọn ọna meji "fa" ati "gbe" pẹlu aaye yii.
Nitorinaa lati tun ṣe, a lo awọn kilasi lati ṣalaye awọn iru tuntun ati awọn iru wọnyi le ni awọn ọna ti a ṣalaye ninu ara ti kilasi naa. Awọn kilasi le ni awọn abuda ti a le ṣeto nibikibi ninu awọn eto wa.
Awọn akọle
Nitorinaa, a ti kọ bii o ṣe le ṣẹda awọn oriṣi tuntun nipa lilo awọn kilasi. Bayi iṣoro kekere kan wa pẹlu imuse yii. A le ṣẹda ohun ojuami laisi ipoidojuko x tabi y nipa lilo awọn kilasi ati pe ko bojumu. Jẹ ki n fihan ọ.
Jẹ ki a ṣẹda aaye kan ki o tẹ sita ṣaaju ki a to ṣeto ipoidojuko x. Ṣiṣe eto wa ni abajade aṣiṣe abuda kan bi eleyi:
O tumo si wipe ojuami ohun ni ko si abuda ti a npe ni x. Bayi iṣoro naa ni pe o ṣee ṣe lati ni nkan aaye laisi awọn ipoidojuko x tabi y. Eyi ko ni oye bi nigbakugba ti a ba sọrọ nipa aaye kan, a nilo lati mọ ibiti aaye naa wa. Lati yanju isoro yi, a lo a Constructor. Olupilẹṣẹ jẹ iṣẹ ti a pe ni akoko ṣiṣẹda ohun kan.
Eyi ni bi a ṣe nlo oluṣeto. Ni akọkọ, jẹ ki a kọja awọn iye ipoidojuko x ati y ninu eto ti o wa loke.
point = Point(10, 20)
print(point.x)
Bayi, a nilo lati ṣafikun ọna pataki kan ninu kilasi yii ti a pe ni onitumọ. Awọn sintasi rẹ jẹ bi eleyi:
def __init__(self, x, y):
init
jẹ kukuru fun ipilẹṣẹ, ati pe eyi ni iṣẹ tabi ọna ti a pe nigbati nkan tuntun ba ṣẹda. x ati y ti wa ni afikun lẹsẹkẹsẹ self
lati fi meji afikun sile.
Lẹhin iyẹn, o yẹ ki a ya aworan x ati y si awọn iye ti o kọja ie 10 ati 20
self.x = x
self.y = y
A lo awọn self
lati tọka si nkan ti o wa lọwọlọwọ lẹhinna a ṣeto ẹda x si ariyanjiyan x ti o kọja si iṣẹ “x”. Ni ọna yii, lo init
ọna, a le initialize wa ohun. Yi ọna ti wa ni tọka si bi a Constructor. Jẹ ki a ṣiṣẹ eto wa.
Bayi, a le yi awọn ipoidojuko x ati y pada nigbamii. Jẹ ki a ṣe imudojuiwọn ipoidojuko x:
point = Point(10, 20)
point.x = 11
print(point.x)
Bayi, ipoidojuko x ti ni imudojuiwọn si iye 11.
idaraya
Eyi ni ere idaraya ti o nifẹ fun ọ.
Mo fẹ ki o ṣalaye iru tuntun ti a pe ni eniyan. Awọn nkan “Eniyan” wọnyi yẹ ki o ni “name
"iwa bi daradara bi a"talk()
”Ọna.
O jẹ iṣẹ ti o rọrun ati pe ko yẹ ki o gba diẹ ẹ sii ju iṣẹju meji lọ.
ojutu
Bẹrẹ pẹlu asọye kilasi “Eniyan” bii eyi:
class Person:
self.name = name
A yoo setumo awọn Constructor nigbamii. Bayi, a le ṣẹda ohun "Eniyan". Jẹ ká pe o John
john = Person("John Smith")
print(john.name)
john.talk()
Bayi, lọ si apakan akọkọ ti koodu naa ki o ṣẹda olupilẹṣẹ kan.
def __init__(self, name):
Koodu ipari yoo dabi eyi:
O tun le lo awọn gbolohun ọrọ ti a pa akoonu ati awọn imọran miiran ni apapo pẹlu awọn kilasi ati awọn oluṣeto.
ilẹ-iní
Ogún jẹ imọran miiran ti o ni nkan ṣe pẹlu awọn kilasi ti o jẹ ki o tun lo koodu kan.
Ro yi nkan ti koodu.
class Dog:
def walk(self):
print("walk")
A ti ṣẹda kilasi "Aja" pẹlu ọna "rin". Ni ọna yii, a n kan titẹ sita ifiranṣẹ rin lori ebute naa. Jẹ ká sọ, ni a gidi eto, ni o wa 10 ila ti koodu dipo ti o kan kan ila nibi. Ni ojo iwaju, ti o ba nilo kilasi miiran lati ni ọna "rin", a yoo ni lati tun gbogbo koodu naa ṣe. Eleyi jẹ ko bojumu.
Ninu siseto, a ni ilana ti a pe ni DRY eyiti o jẹ kukuru fun maṣe tun ara rẹ ṣe. Jẹ ki a sọ ni igba diẹ ni ọjọ iwaju, a ṣawari iṣoro kan pẹlu ọna “rin” wa ati pe ti a ba ti tun tabi ṣe ẹda ọna yii ni ọpọlọpọ awọn aaye miiran, a yoo ni lati pada wa ṣatunṣe iṣoro yẹn ni gbogbo ibi kan ti a ti ṣe ẹda yii. koodu. Nitorinaa idi ni siseto a ko yẹ ki o ṣalaye nkan lẹẹmeji.
Awọn ọna oriṣiriṣi wa lati ṣe atunṣe iṣoro yii ṣugbọn nibi a yoo kọ ẹkọ eyiti o rọrun fun awọn olubere ati pe a pe ni ogún. Ni idi eyi, a yoo ṣẹda kilasi miiran "mammal" ati ṣe apejuwe abuda "rin" wa ninu kilasi naa.
class Mammal:
def walk(self):
print("walk")
Lẹhin asọye kilasi “Mammal” wa a le lo ogún lati kọja awọn abuda bii eyi:
Mejeeji awọn kilasi aja ati ologbo n jogun gbogbo awọn ọna kilasi ti a ṣalaye ninu kilasi obi wọn. Bayi, a le ṣafikun awọn ọna kan pato si awọn aja bii eyi:
class Dog:
def bark(self):
print("bark")
Pale mo!
Eyi jẹ gbogbo nipa awọn kilasi, awọn olupilẹṣẹ ati lilo koodu ni awọn kilasi pẹlu awọn imọran iní. Bayi a ti sunmọ opin jara wa. Ni aaye yii, o yẹ ki o ni anfani lati gbejade ti o dara, kika ati awọn koodu ṣoki ni Python.
A yoo rii ero ti awọn modulu ati awọn idii ninu ikẹkọ atẹle.
Fi a Reply