- Samsung Galaxy S26 Ultra - fontossági sorrend
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Krikszkraksz? Nem, X Max!
- Google Pixel topik
- Milyen okostelefont vegyek?
- Apple Watch
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Xiaomi 17 - még mindig tart
- Telekom mobilszolgáltatások
- Akciófigyelő: Megint itt a Xiaomi születésnapja a kedvezményes ajánlatokkal
Új hozzászólás Aktív témák
-
cousin333
addikt
A namedtuple egy "gyártó függvény" (factory function), aminek az eredménye ebben az esetben egy osztály lesz (mintha mondjuk nem kellene megírnod a Kör osztályt előre, hanem futás közben dinamikusan hoznád létre). Az i2c_io_pinout tehát lényegében egy osztály (amit talán elegánsabb lenne ennek megfelelően camel-case-el jelölni: pl. I2cIoPinout), az i2c_io_state meg valóban egy példány.
Az adott számú "kulcsnevet" vagy az eredeti elnevezés tömbbel éred el, vagy a _fields paraméterrel. Pl.:
i2c_io_state._fields[1]Őszintén szólva nem tudom, mire kell, de nekem az a véleményem, hogy ha ezt akarod elérni, akkor nem jól használod a típust, hiszen ez pont arra lenne jó, hogy ne kelljen ismerni a sorrendet a létrehozást követően.
Alapvetően én az egész külső IC-nek egy osztályt hoznék létre, hasonlóan a már létező I2C, SPI... stb. osztályokhoz, ami aztán minden létező funkciót egy névtérbe "csomagol". Valami ilyesmi struktúrával:
class IoModule(object):MASK_SWITCH1 = 0x30def __init__(self, interface):self.port = interfaceself.portA_status = Noneself.portB_status = Nonedef connect(self):.... # connect heredef close(self):self.port.close()def update_ports(self):self.portA_status = self.port.read(<reg_portA>)self.portB_status = self.port.read(<reg_portB>)def compare_portA(self):port_old = self.portA_statusself.update_ports()port = self.portA_statusreturn port & port_old@propertydef id(self):return self.port.read(<id_reg>)@propertydef Switch1(self):return True if self.port_status & self.MASK_SWITCH else FalseEbben az esetben az osztályunk példányosításkor megkapja az interfészt (ami ebben az esetben egy I2C objektum), és azt használja a továbbiakban. A fenti kód elég kezdetleges, csak a struktúrát akartam megmutatni.
ui: ha listaelemeken akarsz végigmenni, akkor ne használd a range(len(x)) formulát. Ha az elem kell, akkor
for elem in lista:print(elem)Ha kell a sorszám is, akkor enumerate:
for i, elem in enumerate(lista):print('Az', i, 'elem a(z)', elem)Ha pedig több egyforma listád van, akkor zip:
for elemA, elemB in zip(listaA, listaB):print('Az A eleme:', elemA, 'a B eleme pedig:', elemB)
Új hozzászólás Aktív témák
- Hello Leo: véget ér a Starlink egyeduralma
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Milyen TV-t vegyek?
- Nvidia GPU-k jövője - amit tudni vélünk
- Külső merevlemezek - USB, eSATA, FireWire HDD
- sziku69: Szólánc.
- Kuponkunyeráló
- Samsung kuponkunyeráló
- Óra topik
- Router csere vagy nem? – Wi-Fi útmutató otthonra
- További aktív témák...
- Akció!!! Sosemhasznált! HP OmniBook 5 i5-1334U 16GB 1TB 16" FHD+ Gar.: 1 év
- Bomba ár! Dell Latitude 7330 - i5-1235U I 16GB I 256SSD I HDMI I 13,3" FHD I Cam I W11 I Garancia!
- HP Elitebook / Probook üzleti kategóriás notebookok - i5 - i7 - Ryzen - nagy választékban számlával
- iPhone 13 mini 128GB 88% (1év Garancia)
- Honor Magic6 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

