Teknologian jakaminen

Sopivin olio-ohjelmointiopas aloittelijoille Internetissä: 14 luokkien ja objektien Python-toteutusta - Osaatko erottaa luokan staattiset menetelmät ja luokkamenetelmät?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Sopivin olio-ohjelmointiopas aloittelijoille Internetissä: 14 luokkien ja objektien Python-toteutusta - Osaatko erottaa luokan staattiset menetelmät ja luokkamenetelmät?

Yhteenveto:

Tämä artikkeli esittelee pääasiassa luokkamenetelmiä ja staattisia menetelmiä luokissa ja objekteissa Pythonissa sekä luokkamenetelmien ja staattisten menetelmien määritelmiä, ominaisuuksia, sovellusskenaarioita ja käyttömenetelmiä ja vertailee näitä kahta.

Alkuperäinen linkki:

FreakStudion blogi

Suositeltu aiemmin:

Mahdollisesti sopivin olio-ohjelmoinnin opetusohjelma Internetin käytön aloittamiseen: Python-toteutus - pakollista luettavaa sulautetuille harrastajille!

Sopivin olio-ohjelmoinnin opetusohjelma koko Internetin käytön aloittamiseen: 00 Johdatus olio-suunnittelumenetelmiin

Sopivin olio-ohjelmoinnin opetusohjelma Internetin käytön aloittamiseen: 01 Olio-ohjelmoinnin peruskäsitteet

Sopivin olio-ohjelmoinnin opetusohjelma Internetissä aloittamiseen: 02 Luokkien ja objektien Python-toteutus - Pythonilla luokkien luomiseen

Sopivin olio-ohjelmoinnin opetusohjelma Internetin käytön aloittamiseen: 03 Luokkien ja objektien Python-toteutus - attribuuttien lisääminen mukautettuihin luokkiin

Sopivin olio-ohjelmoinnin opetusohjelma Internetin käytön aloittamiseen: 04 Luokkien ja objektien Python-toteutus - menetelmien lisääminen mukautettuihin luokkiin

Sopivin olio-ohjelmointiopetus aloittelijoille Internetissä: 05 Luokkien ja objektien Python-toteutus - PyCharm-kooditunnisteet

Sopivin olio-ohjelmointiopetus aloittelijoille Internetissä: 06 Python-luokkien ja objektien toteutus - mukautettujen luokkien tietojen kapselointi

Sopivin olio-ohjelmoinnin opetusohjelma aloittelijoille Internetissä: 07 Luokkien ja objektien Python-toteutus - tyyppimerkinnät

Sopivin olio-ohjelmoinnin opetusohjelma aloittelijoille Internetissä: 08 Python luokkien ja objektien toteutus - @property decorator

Sopivin olio-ohjelmoinnin opetusohjelma aloittelijoille Internetissä: 09 Python-luokkien ja objektien toteutus - luokkien välinen suhde

Sopivin olio-ohjelmoinnin opetusohjelma aloittelijoille Internetissä: 10 luokkien ja objektien Python-toteutusta - luokan periytyminen ja Liskov-korvausperiaate

Sopivin olio-ohjelmointiopas aloittelijoille Internetissä: 11 luokan ja objektin Python-toteutus - aliluokkakutsut isäluokkamenetelmä

Sopivin olio-ohjelmoinnin opetusohjelma aloittelijoille Internetissä: Python-toteutus 12 luokkaa ja objektia - Python käyttää lokimoduulia ohjelman ajolokien tulostamiseen

Sopivin olio-ohjelmoinnin opetusohjelma aloittelijoille Internetissä: 13 luokan ja objektin Python-toteutus - Visuaalisen koodin lukuartefaktin Sourcetrail asennus ja käyttö

Lisää jännittävää katsottavaa sisältöä:

Lyhyt analyysi CM3-virheenkorjausjärjestelmästä

Puolen kuukauden työn jälkeen julkaistaan ​​yhteenveto sulautetusta teknologiapinosta

Kilpailun voittanut kamppailulajin salaisuudet: 05. Kuinka jakaa kansallisen palkintojoukkueen työ- ja opiskelusisältö sähköisten tietokoneiden kilpailuissa

Kilpailun voittanut kamppailulajin salaisuudet: 04 Nopea ja luettava opas sulautettuun kehitykseen sähköisissä kilpailuissa

Kilpailun voittanut kamppailulajin salaisuudet: 03 Hyvät luovat valinnat - välttämättömin edellytys kansallisen palkinnon voittamiseen

Kilpailun voittanut kamppailulajin salaisuudet: 02 National Award Secrets - Nopea aloitusprosessi opiskelijoiden tietokonekilpailuihin, pakollista luettavaa aloittelijoille

Kilpailun voittanut kamppailulajin salaisuudet: 01 Miten näet ilmiön "rullaamisesta", "esi-isien tapahtumista" ja "yhteyksien etsimisestä" nykyaikaisissa korkeakoulukilpailuissa?

Kilpailun voittanut kamppailulajin salaisuudet: 00 Aihekilpailu – aihe, jota insinööriopiskelijat eivät voi välttää.

Elektroniikka- ja tietokonekilpailujen "taistelulajien salaisuudet" - Elektroniikkakilpailu Optoelektroniikan suunnittelukilpailu Tietokonesuunnittelukilpailu Sulautetun sirun ja järjestelmän suunnittelukilpailu, kaikki tarvitsemasi on täällä!

Dokumentaatio ja koodin hankinta:

Voit ladata asiakirjan seuraavasta linkistä:

https://github.com/leezisheng/Doc

kuva

Tämä asiakirja esittelee pääasiassa Pythonin käyttöä olio-ohjelmointiin ja vaatii lukijoilta perustiedot Python-syntaksista ja mikro-ohjainkehityksestä. Verrattuna muihin Python-olioohjelmointia selittäviin blogeihin tai kirjoihin, tämä asiakirja on yksityiskohtaisempi ja keskittyy sulautettuihin isäntätietokonesovelluksiin. Se käyttää ylemmän tietokoneen yleistä sarjaporttitietojen lähettämistä ja vastaanottamista, tietojenkäsittelyä, dynaamista graafin piirtämistä jne. ja alempi tietokone sovellusesimerkkeinä ja käytä Sourcetrail-koodiohjelmistoa koodin visuaaliseen lukemiseen helpottaaksesi lukijoiden ymmärtämistä.

Asiaankuuluvat esimerkkikoodilinkit ovat seuraavat:https://github.com/leezisheng/Python-OOP-Demo

teksti

staattinen menetelmä

SensorClass-luokan esimerkkinä ovat luokassa määritellyt ns. InitSensor, StartSensor, StopSensor jne. menetelmät.Objektimenetelmät, toisin sanoen nämä menetelmät ovat kaikki objektille lähetettyjä viestejä, ja ne kaikki kutsuvat objektin ominaisuuksia.Itse asiassa menetelmien kirjoitamme luokassa ei tarvitse olla objektimenetelmiä COM-portti on tietysti erilainen kuin anturiobjektit ovat merkityksettömiä.

Toisessa esimerkissä määrittelemme "Kolmio"-luokan, rakennamme kolmion ohittamalla kolme sivupituutta ja tarjoamme menetelmiä kehän ja pinta-alan laskemiseksi. Nämä kolme sivun pituutta ei kuitenkaan välttämättä pysty rakentamaan kolmioobjektia voimme ensin kirjoittaa menetelmän sen tarkistamiseksi, voivatko kolme sivun pituutta muodostaa kolmion Tämä menetelmä ei tietenkään ole objektimenetelmä, koska kolmioobjektia ei ole luotu tätä menetelmää kutsuttaessa (koska ei tiedetä, voivatko kolme sivua muodostaa kolmion). muodostavat kolmion), joten tämä menetelmä on kolmioluokka, mutta ei kolmioobjekti.voimme käyttäästaattinen menetelmäTämän tyyppisen ongelman ratkaisemiseksi koodi on seuraava.

@staticmethod
    _# 判断传感器ID号是否正确:这里判断ID号是否在0到99之间_
    def IsTrueID(id:int = 0):
        if id >= 0 and id <= 99:
            return True
        else:
            return False
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Staattiset menetelmät ovat itse asiassa opittuja toimintoja Ainoa ero niiden ja funktioiden välillä on se, että staattiset menetelmät määritellään luokan avaruudessa (luokan nimiavaruudessa), kun taas funktiot määritellään tilassa, jossa ohjelma sijaitsee (globaali nimiavaruus). . Staattisilla menetelmillä ei ole erityisiä parametreja, kuten self ja cls, joten Python-tulkki ei tee luokka- tai objektisidontaa sisältämilleen parametreille. Tästä johtuen luokan staattisessa menetelmässä ei voida kutsua luokkaattribuutteja ja luokkamenetelmiä. Tässä määritetään IsPort-staattinen menetelmä sen määrittämiseksi, onko anturin ID-numero oikea. Staattista menetelmää on muutettava @staticmethodilla. Staattisen menetelmän kutsumiseksi voit käyttää joko luokan nimeä tai luokkaobjektia, esimerkiksi:

_    # 设置ID号_
    id = 1
_    # 判断ID号是否符合格式_
    if SensorClass.IsTrueID(id):
        s = SensorClass()
    else:
        print("Sensor Init False")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

kuva

luokan menetelmä

Samoin kuin staattiset menetelmät, Python voi myös määritellä luokassa luokkametodeja. Luokkametodin ensimmäinen parametri on perinteisesti nimeltään cls, joka edustaa nykyiseen luokkaan liittyvää tiedon kohdetta (luokka itse on myös objekti, ja joissakin tapauksissa). paikkoja Kutsutaan luokan metatietoobjektiksi), tämän parametrin kautta saamme luokkaan liittyviä tietoja ja luoda luokan objekteja Python sitoo itse luokan automaattisesti cls-parametriin (huomaa, että se ei ole sidottu luokkaobjektiin. ) . Toisin sanoen, kun kutsumme luokkametodia, meidän ei tarvitse erikseen välittää parametreja cls-parametrille.

Luokkametodeja on muokattava käyttämällä @classmethod-muuttajaa. Määrittelemme MasterClassissa luokkametodin.

@classmethod
    def MasterInfo(cls):
        print("Info : "+str(cls))

print(MasterClass.MasterInfo())
  • 1
  • 2
  • 3
  • 4
  • 5

kuva

Lisää kuvan kuvaus tähän