Table of Contents[Hide][Show]
In hac lectione discemus de generibus, constructoribus et hereditate in Pythone.
Hae notiones re vera magni momenti sunt in magna programmate ubi variae rationes definiendae sunt.
Classes
Classes in programmando essentiales sunt et Pythoni specificae non sunt. Multi alii programming linguis: notionem generum sustinere. Classes utimur ad novas notitias rationes definiendas.
Hactenus in Pythone sicut numeros, chordas, et booleans didicimus de speciebus fundamentalibus datarum. Haec sunt genera notitiarum fundamentalium vel simplicium in Pythone. Etiam duo genera notitiarum complexorum vidimus sicut tabulae et dictionaria.
Cum hae species valde utiles sint, non possunt semper uti conceptibus implicatis imitandis. Puta de ratione puncti, vel cart. A shopping cart non est boolean vel album. Est alia quaedam notitia. Classes igitur uti possumus ad novas figuras definiendas ad notiones reales conformandas.
Nunc definiamus novum genus notitiae quod punctum vocatur. Hoc genus novum methodos habituri sumus sicut ante compressimus.
Sic facies;
Classem definire incipimus utendo "classis" keyword et postea quod genus nostrum nomen damus.
class Point
Nunc, vide placitum nominandi quo usus sum hic. Primam litteram hic capitalizavi, hoc est quod placitum vocamus paschale. Haec conventio diversa est ab eo quod utimur ad nominationem nostram variabilium et functiones, quibus semper utimur litteris lowercase et pluribus verbis utendo subscore separamus. Sed cum genera nominamus, non utimur subscore ut plura verba disiungamus, sed primam uniuscuiusque verbi litteram capitalem facimus.
Post definitionem ordinis nostri, colonia adhibetur quae significat quod nunc truncus definitur.
class Point:
def move (self):
In hoc scandalo definiri possumus omnes functiones seu methodos quae ad puncta pertinent. Verbi gratia, possumus definire functionem quae "movet" dicitur ad punctum movendum. Nota quod quam primum per parenthesin aperta figuramus, PyCharm sponte hic "sui" addit. Hoc keyword speciale est et me ad hoc celeriter redire. Print "move" in termino.
print("move")
Aliam methodum definiamus sicut "trahere" et in termino imprimere.
def draw(self):
print("draw")
Facti sumus cum definitione classis nostrae "puncti". Hoc novo genere res novas creare possumus. Classis simpliciter definit blueprint vel exemplum pro creandis obiectis quae sunt instantiae actuales in illo blueprint. Ad aliquid faciendum, nomen generis nostri typus exprimimus ac deinde munus appellamus. Hoc novum objectum creat et inde redit. Tum illud in variabili reponere possumus. Me et ostendam vobis:
Hic "punctum1" definivimus quod est punctum tres dimensiones. Vides quod coordinatas singulas in termino imprimere possumus.
Duobus modis uti possumus hoc puncto "trahere" et "movere".
Ita ut metemus, classes utimur, ut novas species definiamus, earumque generum modos habere possumus, quos in corpore classis definimus. Classes attributa habere possunt quae in programmatibus nostris alicubi constituere possumus.
Constructores
Hactenus didicimus quomodo novas species utendo classes crearemus. Nunc quaestio parva est cum hac exsecutione. Punctum obiectum creare possumus sine x vel y uti classes coordinatas et non ideales. Me et ostendam vobis.
Punctum faciamus et imprimamus antequam x coordinare constituamus. Programma currens consequitur in errore attributo sic:
Significat punctum quod non habet proprium x dicitur. Nunc problema est quod possibile est habere punctum obiectum sine coordinatis x vel y. Hoc non convenit ut quoties de puncto loquimur, scire oportet ubi situs ille punctus. Ad hanc quaestionem solvendam machinator utimur. Constructor est functio quae tempore obiecti creandi vocatur.
Ecce quomodo utimur machinatore. Primum, valores coordinatas x et y transeamus in progressione praedicta.
point = Point(10, 20)
print(point.x)
Nunc specialem methodum in hoc genere constructor vocato addere oportet. Syntaxis eius sic est:
def __init__(self, x, y):
init
brevis est pro initialized, et hoc est munus seu modus qui dicitur quando novum punctum creatum est. Adduntur post x et y self
addere duos extra parametri.
Deinde describatur x et y ad valores transeuntes id est 10 et 20 .
self.x = x
self.y = y
Nos utor self
ad objectum hodiernum referre ac deinde attribuere x attributi x rationi latam functioni "x". Hoc modo utens init
methodo, possumus objecta nostra initialize. Haec methodus ad conditorem refertur. Programma nostrum transeamus.
Nunc potest mutare x et y postea coordinatas. Sit scriptor update coordinare x:
point = Point(10, 20)
point.x = 11
print(point.x)
Nunc ordinatio x renovatur ad valorem XI.
Exercise
Hic est interesting exercitatio tibi.
Volo te definire novum genus quod dicitur persona. Haec "persona" res habere debent.name
"Tam attributum"talk()
"Modum.
Est opus simplex et non plus quam duo minuta.
Solutio
Satus definiens genus "personam" sic:
class Person:
self.name = name
postea constructor definiemus. Sed obiectum personae potest creare. Let's call it John
john = Person("John Smith")
print(john.name)
john.talk()
Nunc ad primam codicis portionem accede et conditorem crea.
def __init__(self, name):
Codicis postremus sic erit:
Uti potes chordis formatis et aliis notionibus in conjunctione cum generibus et constructoribus.
inheritance
Hereditas est alia notio cum classibus consociata quae te codicem reuse.
Animadverte hoc fragmentum in codice.
class Dog:
def walk(self):
print("walk")
Genus "canis" cum "ambulatione" modum creavimus. Hoc pacto simpliciter vulgandum verbum ambulationis in termino imprimimus. Dicamus in programmate reali, X lineae codicis pro una tantum linea hic sunt. In posterum, si alia classis methodum "ambulare" habere necesse est, omnia quae codicem sunt repetere debebimus. Hoc non est specimen.
In programmando habemus principium SICCUS vocatum quod breve est quia teipsum non repeto. Dicamus aliquando in futuro, problema de methodo nostra "ambulare" invenimus et si hanc methodum in multis aliis locis iteravimus vel duplicavi, necesse erit reverti et quaestionem illam in singulis locis hanc duplicatam figere. codicem. Quam ob rem in programmando aliquid bis definiendum non est.
Diversae sunt rationes huic problemati remedium afferendae, sed hic discimus eam quae facilior est incipientibus et hereditas vocatur. In hoc casu aliud genus "mammal" creabimus et attributum nostrum "ambulare" in eo genere definiemus.
class Mammal:
def walk(self):
print("walk")
Post definitionem ordinis nostri "Mammal" uti possumus, hereditates ut attributa transgrediamur his similia:
Tam canis et cattus classes hereditates omnium generum modos in suo parente genere definiunt. Nunc modos canibus specificos addere possumus sic:
class Dog:
def bark(self):
print("bark")
Conficio!
Haec omnia circa classes, constructores et reusing codicem in Classibus cum notionibus hereditariis. Nunc ad finem seriei nostrae appropinquamus. Hoc loco in Pythone codicibus bene lecti et concisi codices producere possis.
Conceptum modulorum et fasciculorum in altera lectione videbimus.
Leave a Reply