печально быть антисоциальным - Post a comment

Feb. 19th, 2004

[info]smejmoon

02:53 pm - čūsku dīdīšana: Python f-ju atgriežamās vērtības

Pitõnā jebkurš koda gabals ir funkcija. Mainīgā radīšana, metodes izsaukums, moduļa importēšana, klases definīcija, un lai būtu pavisam rekursīvi arī funkcijas definīcija ir funkcija.

Tālāk pavisam vienkārši par atgriežamajām vērtībām.




>>> def fun():
... return 5
...
>>> fun()
5


Šī funkcija atgriež 5 :)

>>> def fun1():
... return
...
>>> fun1()
>>> fun1() == None
True
>>> fun1() == ''
False


Šī savukārt atgriež None. Kas ir speciāla vērtība tukšuma apzīmēšanai. Atšķirīga no citām loģiskajām False vērtībām, kā "", [], 0.


>>> def fun2():
... pass
...
>>> fun2()
>>> fun2() == None
True


Lai nodefinētu f-ju vai klasi, kas neko nedara jālieto pass komanda. Tas tapēc, lai būtu atkāpe un parseris visu saprastu.


>>> def fun3():
... a = 3
...
>>> fun3() == None
True


Šī funkcija itkā kautko dara, bet tāpat atgriež None

>>> def fun4():
... return 3,4
...
>>>
>>> fun4()
(3, 4)


Lūk šis ir tas sīkums, kas man tiešām piedur. Funcija var atgriezt vairākas vērtības. Lūk!:

>>> a,b = fun4()
>>> a
3
>>> b
4


Un še nāks pārsteigums lācim.


>>> a,b = b,a
>>> a
4
>>> b
3


Patiesībā tā ir tikai noklusētā tuple sintakse. Kā arī strādā ar jebkura tipa objektu. Vienkārši tiek apmainītas mainīgajos glabātās references.

>>> (a,b)=(b,a)
>>> a
3
>>> b
4


Bet ir taču jauki neierobežot sevi ar vienu atgriežamo vērtību vai arī referencēm/pointeriem ieejas parametros.

Jāpiezīmē, ka rakstot f-jas un citiem vārdiem metodes, jāņem vērā, ka None var būt gan rezultāts, gan zīme tam, ka nekas nav atgriezts.

Read Comments

Reply:

From:
( )Anonymous- this user has disabled anonymous posting.
Username:
Password:
Subject:
No HTML allowed in subject
  
Message:

Notice! This user has turned on the option that logs your IP address when posting.