Python

Iteratori Pitonā

Iteratori Pitonā
Iterators ir vērtīgs rīks Python. Tas ir objekts, ko izmanto, lai atkārtotu visus kolekcijas elementus. Iterator nodrošina piekļuvi konteinera elementiem, taču tas pats neveic atkārtojumu. Tas darbojas kā datu bāzes kursors, un to izmanto, lai lasītu ierakstu sarakstu pa vienam. Piemēram,priekš'cilpa, kas atkārto konteinera vērtības, darbojas kā iterators. Python ir daudz iebūvētu iteratoru iterējamiem objektiem, piemēram, sarakstiem, rindkopām, vārdnīcām utt. Bez šiem atkārtotājiemitertools'funkcijas var izmantot, lai atgrieztu citus Python iteratorus. Šajā rakstā parādīts, kā izmantot cilpu kā iteratoru, pielāgotu iteratoru, bezgalīgu iteratoru un bezgalīga iteratora vadību Python 3. Daži “itertools'funkcijas ir izskaidrotas arī šīs apmācības pēdējā daļā.

Iteratoru metodes

Katrā iteratora objektā ir šādas divas metodes.

Šo metodi izmanto, lai inicializētu iterējamo objektu. Atgriežamajam objektam ir metode '_ _Nākamais_ _()'Python 3.

Šī metode atgriež atkārtojamo objekta nākamo vērtību. Attiecība starp iteratoru un iterējamo objektu ir parādīta šajā diagrammā.

Atkārtojas ar cilpām

Iepriekš tika minēts, kapriekš'cilpa izsauc'Nākamais()metode netieši atkārtojot jebkuru iterējamu objektu. Ja cilpa tiek izmantota iterējama objekta atkārtošanai, 'priekš'cilpa izsauc'Nākamais()"metode netieši un"kamēr'cilpa izsauc'Nākamais()"vai"__Nākamais__()'metodi, lai skaidri nolasītu nākamo iterējamā objekta vērtību. Abi cilpu veidi turpina saukt šo metodi, līdzStopIterationtiek ģenerēts signāls.

1. piemērs: Iterējamo objektu atkārtošana ar “for” Loop

Šis skripts parāda 'priekš'cilpas piecu dažādu atkārtojamu objektu atkārtošanai. Pirmais 'priekš'cilpu izmanto, lai atkārtotu virknes vērtību un izdrukātu katru virknes rakstzīmi katrā atkārtojumā. Otrais 'priekš'cilpa tiek izmantota, lai atkārtotu esoša teksta faila saturu un izdrukātu visas faila rindas katrā atkārtojumā. Trešais 'priekš'cilpa tiek izmantota, lai atkārtotu kopas vērtības. Ceturtais 'priekš'cilpa tiek izmantota, lai atkārtotu sarakstā ietvertās vērtības. Piektais 'priekš'cilpa tiek izmantota, lai atkārtotu vārdnīcā ietvertās vērtības.

# Atkārtojot virkni, izmantojot cilpu
drukāt ("Stīgu atkārtojums, izmantojot cilpu")
str = "Python"
val val str:
druka (val)
# Iterējot esošu failu, izmantojot cilpu
print ("\ n \ nFaila lasīšana pa rindām, izmantojot cilnei")
līnijai atvērtā stāvoklī ("tests.txt "):
drukāt (līnija, beigas = "")
# # Atkārtojot dubultu, izmantojot cilpu
drukāt ("\ n \ nPareiza atkārtošana, izmantojot cilpu")
tup = ("Grāmata", "Papīrs", "Zīmulis", "Pildspalva")
par val in tup:
druka (val)
# Saraksta atkārtošana, izmantojot cilpu
drukāt ("\ n \ nIterācijas saraksts, izmantojot cilpu")
listdata = ["Dizaineris", "Analītiķis", "Programmētājs", "Administrators"]
vārdam listdata:
druka (val)
# Vārdnīcas atkārtošana, izmantojot cilpu
drukāt ("\ n \ nVārdnīcas atkārtojums, izmantojot cilpu")
dictval = 'Meher': 95, 'Sakib': 97, 'Akhi': 70, 'Fiaz': 78
indeksam dictval:
drukāt ("% s sasniegts% d atzīmes"% (indekss, dictval [rādītājs]))

Rezultāts

Šis izvads parāda, ka virknes vērtības rakstzīmes; līnijas pārbaude.txt fails; un skriptu, saraksta un vārdnīcas vienumi tiek izdrukāti pēc skripta palaišanas.

2. piemērs: Sarakstu atkārtošana ar ciklu “kamēr”

Šis skripts parāda 'kamēr'cilpa datu saraksta atkārtošanai. Lūk,atkārtot ()'metodi izmanto iterējamā objekta inicializēšanai, un'Nākamais()'metodi izmanto, lai nolasītu nākamo iterējamā objekta vērtību. StopIteration signāls tiek izmantots, lai pārtrauktu no bezgalīgā 'kamēr ' cilpa, kad neviens saraksta elements nav atstāts lasīšanai.

# Definējiet sarakstu
listdata = ['google.com ',' bing.com ',' yahoo.com ',' baidu.com ',' duckduckgo.com ']
# Inicializējiet iterējamo objektu
init_iter_object = iter (saraksta dati)
drukāt ("Saraksta datu atkārtojums, izmantojot while ciklu: \ n")
# Deklarēt un bezgalīgi, kamēr cilpa
kamēr patiess:
mēģiniet:
Nākamās vērtības atkārtošanai tiek izmantota metode # next ()
vērtība = nākamais (init_iter_object)
drukāt (vērtība)
izņemot StopIteration:
# Pārtrauciet no cilpas pēc visu vērtību atkārtošanas
pārtraukums

Rezultāts

Šis izvads parāda, ka katra saraksta vērtība ir izdrukāta katrā rindā, izmantojot 'Nākamais()'metode pēc skripta palaišanas.

3. piemērs: Tuples atkārtošana ar metodi '__next __ ()' un 'kamēr' Loop

Šajā rakstā abiNākamais()' un '__Nākamais__()'metodes tiek izmantotas, lai atkārtotu kopas vērtības. The 'atkārtot ()'metodi izmanto, lai izveidotu iterējamu objektu ar nosaukumu'init_iter."Lūk,"Nākamais()'metode tiek izsaukta divreiz, lai izdrukātu pirmās divas kopas vērtības. Tālāk, bezgalīgskamēr'cilpa tiek izmantota, lai atkārtotu atlikušās kopas un'StopIteration'signāls tiek izmantots, lai pārtrauktu darbību no cilpas, tāpat kā iepriekšējā piemērā.

# definēt kopu
animal_tuple = ('Putns', 'Lauva', 'Pērtiķis', 'Čūska', 'Zilonis')
print ("Komplekta vērtības ir: \ n")
# Inicializējiet iteratora objektu, izmantojot iter ()
init_iter = iter (animal_tuple)
# atkārtot un izdrukāt vērtību, izmantojot metodi next ()
izdrukāt (nākamais (init_iter))
drukāt (nākamais (init_iter))
# Definējiet bezgalīgu kamēr cilpu
kamēr patiess:
mēģiniet:
# atkārtot un izdrukāt vērtību, izmantojot metodi __next __ ()
drukāt (init_iter.__Nākamais__())
izņemot StopIteration:
# Pārtrauciet no cilpas pēc visu vērtību atkārtošanas
pārtraukums

Rezultāts

Šis izvads parāda, ka pēc skripta palaišanas pirmās divas vērtības 'Putns' un 'Lauva,"ir iespiesti ar"Nākamais()metodi, bet pārējās trīs vērtības,Pērtiķis,"Čūska,' un 'Zilonis,"ir iespiesti ar"__Nākamais__()metode.

Iterēšana ar pielāgotu iteratoru

Šajā sadaļā parādīts, kā dažāda veida pielāgotus atkārtotājus var ieviest, izveidojot klases. Gan__iter __ ()"un"__Nākamais__()"metodes tiks ieviestas klasē, un"kamēr'cilpa tiks izmantota iterējamā objekta vērtību atkārtošanai.  Šī raksta nākamā daļa parādīs arī to, kā izveidot bezgalīgu pielāgotu iteratoru un kontrolēt atkārtojumu.

4. piemērs: vienkārša pielāgota atkārtotāja izmantošana

Šis skripts ļauj aprēķināt vērtību xn izmantojot pielāgotu iteratoru, neizmantojot nevienu iebūvētu Python funkciju. Klase ar nosaukumu 'x_to_power_n'ir norādīts scenārijā. The '__tajā__()klases metode inicializēs vērtības x un n kas tiks izmantots objekta izveidošanas laikā. The '__iter __ ()'metode inicializēs klases mainīgo, kurā tiks saglabāts'rezultāts'aprēķina mainīgais katrā atkārtojumā. Vērtības x un n tiks uzskatīts par lietotāja ievadītu. Klases objekts 'numuri'ir izveidots ar x un n. Pēc tam atkārtojams objekts ar nosaukumu 'iter_objir izveidots, lai izsauktu__Nākamais__()metode n-1 reizes, izmantojotkamēr'cilpa, lai aprēķinātu vērtību xn. Katrā atkārtojumā vērtība x tiks reizināta ar iepriekšējo vērtīburezultāts'mainīgais. Pēc “kamēr"cilpa,"__Nākamais__()metode tiks izsaukta vēlreiz, lai izdrukātu vērtību xn.

"Izveidojiet klasi, lai aprēķinātu
x līdz jaudai n, izmantojot iteratoru
"
klase x_to_power_n:
# Inicializējiet x un n vērtību
def __init __ (pats, x = 0, n = 0):
pats.x = x
pats.n = n
# Inicializējiet iterējamo
def __iter __ (pats):
pats.rezultāts = 1
atgriezties pats
# Aprēķiniet vērtību katrā atkārtojumā
def __next __ (pats):
ja pats.n> = 0:
pats.rezultāts * = pats.x
pats.n - = 1
atgriezties pats.rezultāts
# Ņem x un n vērtības
x = int (ievade ("Ievadiet x vērtību:"))
n = int (ievade ("Ievadiet n vērtību:"))
# Izveidojiet klases objektu
skaitļi = x_to_power_n (x, n)
# Izveidojiet iterējamu
iter_obj = iter (skaitļi)
mēģiniet:
i = 0
kamēr es < n-1):
# Atgūstiet nākamo vērtību, izmantojot metodi next ()
nākamais (iter_obj)
i + = 1
drukāt ("\ n% d jaudai% d ir% d"% (x, n, iter_obj.__Nākamais__()))
izņemot StopIteration:
# Pārtraukt no skripta, ja nav vērtības
drukāt (nākamais (iter_obj))

Rezultāts

Tālāk redzamais rezultāts to parāda 2 tiek uzskatīta par vērtību x un 4 tiek uzskatīta par vērtību n. Tātad skripts aprēķināja vērtību 2būt 16.

5. piemērs: Bezgalīga pielāgota atkārtotāja izmantošana

Šis skripts nepārtraukti drukās skaitļus, kas dalās ar 5, ar vienas sekundes kavēšanos, līdz lietotājs nospiež Ctrl + c ģenerēt 'TastatūraTraucēt'signāls. Bezgalīgais 'kamēr'cilpa šeit tiek izmantota, lai izveidotu bezgalīgu pielāgotu iteratoru. The 'laiks'modulis tiek importēts skripta sākumā, lai izmantotu'Gulēt()"metode, lai aizkavētu katru izvadi uz vienu sekundi. Numurs 5 tiek inicializēts kānum'mainīgais kā pirmais dalāmais skaitlis skriptā, un nākamais skaitlis tiek ģenerēts, pievienojot 5 ar iepriekšējo vērtību'num'mainīgais.

# Importēšanas laika modulis
importa laiks
"
Izveidojiet klasi, lai ģenerētu skaitļus
kas nepārtraukti dalās ar 5
"
klases numurs_sadalāms_pieci:
# Inicializējiet num
def __iter __ (pats):
pats.skaitlis = 5
atgriezties pats
# Aprēķiniet nākamo skaitli, kas dalās ar 5
def __next __ (pats):
nākamais_num = pats.num
laiks.gulēt (1)
pats.skaitlis + = 5
atgriezties next_num
# Izveidojiet klases objektu
Object = Number_Divisible_by_five ()
# Izveidojiet iterējamu objektu
iterObject = iter (objekts)
# Definējiet bezgalīgo cilpu
kamēr patiess:
mēģiniet:
# Dodieties uz nākamo atkārtojumu
drukāt (iterObject.__Nākamais__())
izņemot tastatūru pārtraukt:
drukāt ("tiek nospiesta Ctrl + C.")
# Pārtrauciet no cilpas, nospiežot taustiņu kombināciju Ctrl + C
pārtraukums

Rezultāts

Šis izvads parāda, ka skaitlis sāka drukāt no 5 un nepārtraukti drukāja nākamos numurus viens pēc otra ar vienas sekundes ilgumu. Kad lietotājs nospieda Ctrl + c pēc numura izdrukāšanas 60, ziņa 'Tiek nospiests taustiņš Ctrl + C.pirms scenārija pārtraukšanas tika izdrukāts.

6. piemērs: Pielāgota bezgalīga atkārtotāja vadība

Šis skripts parāda, kā apturēt pielāgoto bezgalīgo atkārtotāju pēc noteikta atkārtojumu skaita pabeigšanas. The '__iter __ ()"klases metode inicializēs vērtības"n' un 'rezultāts'klases mainīgie. Skripts aprēķinās skaitļu kvadrātus, sākot no 1, kas tiek saglabāti mainīgajā n, un izdrukājiet kvadrāta vērtību n līdz vērtība n ir labāks par 5. Šeit tiek paziņots par bezgalīgu cilpu, lai izsauktu '__Nākamais__()metode kvadrāta vērtības drukāšanai n. Kad vērtība n sasniedz 6, "StopIterationsignāls tiks ģenerēts, lai pārtrauktu cilpu.

# Importēšanas laika modulis
importa laiks
"
Izveidojiet klasi, lai aprēķinātu
skaitļa kvadrāts sākas no 1 līdz
skaitļa vērtība ir mazāka par 6
"
klase aprēķināt_jauda:
# Inicializējiet num
def __iter __ (pats):
pats.n = 1
pats.rezultāts = 0
atgriezties pats
# Aprēķiniet nākamo skaitli, kas dalās ar 5
def __next __ (pats):
# Pārbaudiet, vai n vērtība ir mazāka vai vienāda ar 5, vai nē
ja pats.n <= 5:
pats.rezultāts = pats.n ** 2
laiks.gulēt (0.5)
pats.n + = 1
atgriezties pats.rezultāts
cits:
paaugstināt StopIteration
# Izveidojiet klases objektu
Objekts = aprēķināt jaudu ()
# Izveidojiet iterējamu objektu
iterObject = iter (objekts)
# Definējiet bezgalīgo cilpu
kamēr patiess:
mēģiniet:
# Pārejiet uz nākamo atkārtojumu un izdrukājiet kvadrāta vērtību
drukāt ("% d kvadrāts ir% d"% (iterObject.n, iterObject.__Nākamais__()))
izņemot StopIteration:
drukāt ("\ nNoteikts no cilpas.")
# Pārtraukt no cilpas
pārtraukums

Rezultāts

Šis izvads parāda, ka bezgalīgais pielāgotais iterators tika pārtraukts, kad n vērtība kļuva lielāka par 5. Skripts aprēķināja un izdrukāja kvadrātu vērtības skaitļu vērtībām no 1 līdz 5.

Atkārtojas ar itertooliem

Python ir iebūvēts modulis ar nosaukumu 'itertools', ko var izmantot, lai izveidotu iteratoru datu atkārtošanai, izmantojot cilpu. Šī raksta nākamajā sadaļā parādīts, kā izmantot trīs funkcijas šajā modulī.

itertools.skaitīt ()

The 'itertools.turpinājumsfunkciju var izmantot ar 'karte ()"secīgu datu ģenerēšanas metode un ar"rāvējslēdzējs ()', lai pievienotu secības, izmantojot šīs metodes skaitīšanas parametru. Šīs funkcijas sintakse ir dota tālāk.

Sintakse

itertools.skaits (sākums = 0, solis = 1)

Pirmais parametrssākt,'izmanto, lai noteiktu secības sākuma vērtību, un 0 ir šī parametra noklusējuma vērtība. Otrais parametrssolis,'izmanto, lai iestatītu starpību starp secīgiem skaitļiem un 1 ir šī parametra noklusējuma vērtība.

7. piemērs: Count () izmantošana itertoolu funkcija

Šis skripts aprēķinās summu no 0 uz n skaitļi, kur vērtība n tiks ņemts no lietotāja. The 'skaitīt ()funkcija tiek importēta noitertools'skripta sākumā. The 'my_iterator'objekts tiek inicializēts ar'skaitīt ()'funkcija ar'sākt'vērtība 0 un a'solis'vērtība 1. Tālāksum_rezultāts'mainīgo inicializē iterējamā objekta pirmā vērtība. Sākuma vērtība tiek inicializēta mainīgajam i un sākuma numurs tiek saglabāts kā raksturs mainīgajā - skaitļi, kas tiks izmantoti, lai katrā atkārtojumā apvienotu citus skaitļus. Sērijas skaitļu vērtības tiks pievienotas katrā atkārtojumā, kadNākamais()tiek saukta metode. Kad vērtība i kļūst lielāks par n, skripts tiks pārtraukts, parādot summas rezultātu.

"Aprēķinās šāds skripts
0 summa skaitlim, kas tiks ņemts par ievadi.
"
# Importa skaits
no itertoolu importa skaita
# Izveido atkārtojamu skaitīšanas objektu ()
my_iterator = skaits (sākums = 0, solis = 1)
# Izlasiet pirmo iteratora vērtību
sum_rezultāts = nākamais (mans_iterators)
# Paņemiet skaitļa ievadi, lai pārtrauktu bezgalīgo, kamēr ciklu
n = int (ievade ("Ievadiet robežvērtību:"))
# Inicializējiet i un skaitļu vērtību
i = summa_rezultāts
skaitļi = f 'i'
# Paziņot bezgalīgu cilpu
kamēr patiess:
# Pievienojiet numuru katrā atkārtojumā
summa_rezultāts + = i
i = nākamais (mans_iterators)
# Pārtrauciet cilpu, ja i vērtība ir lielāka par n
ja (i> n):
pārtraukums
# Pievienojiet skaitļa vērtību kā virkni ar “+” simbolu
cipari + = "+" + f 'i'
# Izdrukājiet galīgo vērtību
drukāt ("% s =% d"% (skaitļi, sum_rezultāts))

Rezultāts

Šis izvads parāda, ka skaitlis 10 tiek izmantots kā ievade, ko izmanto, lai pārtrauktu cilpu pēc skripta palaišanas. Šajā izvadā skripts ir aprēķinājis summu no 0 līdz 10 un izdrukājis izvadi, 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55.

Itertools.cikls ()

Šajā funkcijā ir tikai viens arguments, kas var būt jebkurš objekts. Šīs funkcijas mērķis ir atkārtot objekta vērtības pēc visu vērtību atkārtojuma pabeigšanas. Lūk, virknes, rindas, saraksti utt. var izmantot kā objektu. Šīs funkcijas iterējamie objekta atgriešanās tiek izmantoti, lai atkārtotu katru objekta vērtību, kas tiks izmantota kā arguments, izmantojot 'Nākamais()metode. Atkārtojamo objektu vērtību atkārtošanās reižu skaits tiks balstīts uz cilpas atkārtojumu skaitu. Šīs funkcijas sintakse ir dota tālāk.

Sintakse

itertools.cikls (objekts)

8. piemērs: Cikla () izmantošana

The 'nejaušs' un 'itertools'moduļi tiek importēti skripta sākumā, lai ģenerētu nejaušu skaitli un izmantotu'cikls ()funkcija noitertools'modulis datu atkārtošanai. Trīs nejaušu skaitļu saraksts tiek izmantots kā argumentscikls ()'funkcija. Atkārtojamais objekts ar nosaukumu 'num_list'tiek inicializēts ar šīs funkcijas atgriešanās vērtību. The 'skaitīt'mainīgais tiek inicializēts 0, un kad šī mainīgā vērtība kļūst 6, "kamēr'cilpa tiks pārtraukta. Tātad,kamēr'cilpa atkārtosies sešas reizes, un katra saraksta vērtība atkārtosies tikai vienu reizi.

# Importēt izlases moduli
importēt izlases veidā
# Importēt itertools moduli
importēt itertoolus
# Izveidojiet iterējamu objektu, pamatojoties uz trīs nejaušu skaitļu sarakstu
num_list = itertools.cikls ([nejaušs.randints (1,5), nejaušs.randints (10,50), nejaušs.randints
(100 500)])
# Inicializējiet skaitītāju
skaits = 0
# Atkārtojiet cilpu 6 reizes
kamēr (skaitīt != 6):
drukāt ('Pašreizējais nejaušais skaitlis ir:' + f 'next (num_list)')
skaits + = 1

Rezultāts

Šis izvads parāda, ka trīs nejauši skaitļi, 3, 17, un 185, ir ģenerēti kā saraksta vienumi. Cilpa tiek atkārtota sešas reizes, un šīs trīs vērtības tiek atkārtotas nākamajām atkārtojumiem.

Itertools.atkārtot ()

Funkcija 'repeat ()' darbojas kā bezgalīgs atkārtotājs, un tai var būt divi argumenti. Kad otrais arguments tiek izlaists, funkcija 'atkārtot ()' darbojas kā bezgalīgs atkārtotājs un atkārto vērtību bezgalīgi daudz reižu. Šī funkcija neaizņem atmiņu katram atkārtojumam. Tas vienkārši izveido mainīgo vienu reizi atmiņā un atkārto to pašu mainīgo bezgalīgu reižu skaitu, kad šai funkcijai ir iestatīts tikai viens arguments. Šīs funkcijas sintakse ir dota tālāk.

Sintakse

itertools.atkārtot (vērtība, ierobežojums)

Pirmais arguments tiek izmantots, lai ņemtu vērtību, kas atkārtosies. Otrais arguments nav obligāts un tiek izmantots atkārtojumu ierobežojuma noteikšanai.

9. piemērs: Atkārtojuma () funkcijas izmantošana

The 'itertools'modulis tiek importēts skripta sākumā, lai izmantotu'atkārtot ()'funkcija. Virknes vērtība tiks noņemta no lietotāja, lai atkārtotu, un skaitļa vērtība tiks ņemta no lietotāja, lai iestatītu atkārtojuma ierobežojumu. Atgriešanās vērtība 'atkārtot ()funkcija tiks pārveidota par sarakstu ar 'saraksts ()metodi un glabālistData'mainīgais. 'listData"tiks drukāts ar"priekš'cilpa.

# Importēt itertools moduli
importēt itertoolus
# Ņemiet ievades vērtību, kas atkārtosies
string = input ("Ievadiet virkni:")
# Atkārtojiet skaitļa vērtību
atkārtot = int (ievade ("Ievadiet atkārtojamo skaitli:"))
# izmantojot atkārtojumu (), atkārtoti pievienojiet virkni sarakstā
listData = saraksts (itertools.atkārtot (virkne, atkārtot))
# Inicializēt i
i = 1
drukāt ("Saraksta vērtības ir: \ n")
# Atkārtojiet sarakstu, izmantojot cilpu
par val in listData:
drukāt ("Saraksta elements% d =% s"% (i, val))
i + = 1

Rezultāts

Šis izvads parāda, ka 'Python'tiek ņemta kā virknes vērtība, un 3 tiek uzskatīts par numuru, ko izmanto, lai atkārtotu virknes vērtību pēc skripta palaišanas. Rezultāts parāda, ka virkne 'Python'atkārtojas trīs reizes.

Secinājums

Iteratora jēdzienu un dažādu veidu iteratoru izmantošanu Python mēģina izskaidrot ar ļoti vienkāršiem šī raksta piemēriem. Python lietotāji var izmantot iebūvētu iteratoru vai arī izveidot savu pielāgoto iteratoru, pamatojoties uz prasību. Šis raksts palīdzēs pitona lietotājiem uzzināt par iteratorā izmantotajām metodēm un to, kā šīs metodes darbojas ar jebkuru cilpu, lai lasītu jebkuru iterējamu objektu. Daži lietojumi itertools Šajā rakstā ir izskaidrots arī pitona modulis, lai uzzinātu vairāk par pitona iteratoru.

Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...
Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...
Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...