Ú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
- Úgy állhat le a 16 GB-os GeForce RTX 5060 Ti gyártása, hogy közben nem áll le
- eBay-es kütyük kis pénzért
- Kuponkunyeráló
- Vezeték nélküli fülhallgatók
- Okosóra és okoskiegészítő topik
- Milyen okostelefont vegyek?
- Brogyi: CTEK akkumulátor töltő és másolatai
- Picit gazdaságosabb és halkabb lett a PlayStation 5 Pro legfrissebb verziója
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Proxmox VE
- További aktív témák...
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- 160 - 177 - 178 - Lenovo LOQ (15IRX9) - Intel Core i7-13650HX, RTX 4060 (ELKELT)
- Azonnali készpénzes Sony Playstation 4 Slim / PS4 Pro felvásárlás személyesen/csomagküldéssel
- Dell Vostro 3425 6magos Ryzen 5 5625U 16GB RAM 512GB SSD
- Sony TA-F830ES erősítő + Sony ST-S730ES rádió tuner
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest

