1-sahifa 2-sahifa


 Sinf namunasini yaratish


Download 363.98 Kb.
bet17/21
Sana06.06.2020
Hajmi363.98 Kb.
#115448
1   ...   13   14   15   16   17   18   19   20   21
Bog'liq
Python


21.3. Sinf namunasini yaratish

Shunday qilib, siz liftdagi stulni modellashtirish sinfini aniqladingiz va

Siz ushbu sinf misollarini yaratishingiz mumkin . Kreslolar sinfini taqqoslash mumkin

zavod bilan: u buyumlarning blankalarini oladi va ularni ob'ektlarga aylantiradi

kreslolar.



202-sahifa

202

21-bob. Sinflar

Xususan, ushbu muammo dizayn usuli bilan hal qilinadi

pa __init__ . Birinchi parametr minimal o'zini o'zi ob'ektni ,

ya'ni "ish qismi". Python __class__ atributini ob'ektga tayinlaydi (

konstruktorga berishdan oldin kafedra sinfini chaqirish ).

Ehtimol, boshqa o'xshashlik sizga qanday ishlashini yaxshiroq tushunishga yordam beradi.

darslar: multfilmlar bolalarning tug'ilishini qanday tasvirlayotganini eslang.

Tug'ilmagan bolalar bulutlarning bir qismida yashaydilar. Bir yaxshi lahza

laxta ichkariga kiradi, bolani bulutdan olib beshikka uzatadi

ota-onalar uyida. Konstruktorni chaqirganda, Python bolani oladi -

bulutdan ka (ob'ektni oladi). Bolani uyga olib boradi, uni qiladi

oila a'zosi (tayinlash __class__ xususiyati qiymatini Kafedra yoki boshqa

sinfingizga mos keladigan qiymat). Bola qachon bo'ladi

uyda, uni qo'yish mumkin, yuvish mumkin va hokazo

operatsiyalar orqali o'zgarishi mumkin bo'lgan holat.

Quyida Python-dagi 21-sonli kafedrani yaratish uchun kod mavjud. Da

sinfni chaqirish (ya'ni sinf nomini qavslar bilan belgilash) sizni

Pythonga konstruktorni chaqirishni ayting. Undan farqli o'laroq

Python-dagi ba'zi tillar yangi kalit so'zni ishlatishi shart emas

yoki turini ko'rsating; shunchaki parametrlari bo'lgan qavslarni qo'ying

sinf nomi keyin konstruktor:

>>> stul = Kafedra (21)

Biz yana bir bor terminologiyaga aniqlik kiritamiz: stul o'zgaruvchisi ob'ektga ishora qiladi,

ya'ni namuna. U sinfni ko'rsatmaydi. Ob'ekt sinfga tegishli

Kafedra . Namuna bir qator atributlarni o'z ichiga oladi, shu jumladan hisoblash va id .

Inventsiya atributiga kirish uchun uning namunasini ko'rsating

( stul ):

>>> kafedra

0

>>> kafedra mudiri



21

Python ma'lum atributlarni qidirish ierarxiyasidan foydalanadi. Birinchidan-

la Python misolda atribut qidiradi. Agar qidirish amalga oshmasa,

Aytgancha, Python sinfda atribut izlashni davom ettiradi (bu holatlardan beri)

qaysi sinfga tegishli ekanligini bilish). Agar bu safar qidiruv bo'lsa



203-sahifa

21.3. Sinf namunasini yaratish

203

muvaffaqiyatsiz bo'ladi, Python AttributeError (atributini tashlaydi)

yo'qolgan). Max_occupants atributi odatda sinfda saqlanadi, lekin unga

shuningdek, misol orqali kirish mumkin:

>>> kafedra.max_occupants

4

Ichki amaliyotda Python ushbu qo'ng'iroqni quyidagiga almashtiradi:



>>> kafedra .__ sinf __. max_occupants

4

Sinf fabrika kabi



stul = stul (21)

Kod


Kompyuter nima qiladi

O'zgaruvchan ob'ektlar

Kafedra

Id: 1aea


__-sinf __: turi

max_occupants

yuklaydi

...


Id: 1ca8

__class __: funktsiyasi

id

hisoblash



Id: 1cb2

__-sinf __: Kafedra

stul

21

Int



0

Int


4

Int


Anjir. 21.4. Ob'ektni qurish jarayoni. Stork konstruktorini chaqirganda - Python

konstruktorga "bola" - ob'ektni (o'zini) olib keladi. Ushbu mulk o'rnatildi.

__class__ atributi, lekin konstruktor qo'shib, namunani o'zgartirish huquqiga ega

yangi sifatlar. Ob'ekt stulga aylanadi





204-bet

204

21-bob. Sinflar

Atribut qidiruvlari o'zgaruvchan qidiruvlardan farq qiladi. Shuni unutmang

Python mahalliy miqyosdagi o'zgaruvchilarni qidirishni boshlaydi,

keyin global miqyosga, so'ngra o'rnatilgan -

va qidiruv natija bermasa, natijada NameErrorni tashlaydi . Qidirmoq

atributlar misol bilan boshlanadi, keyin sinfga o'tadi va agar

atribut topilmadi, AttributeError tashlanadi .



21.4. Qo'ng'iroq usuli

Agar sizda sinf namunasi bo'lsa, unda siz usullarni chaqirishingiz mumkin.

Usullar kabi funktsiyalar, qavslar yordamida chaqiriladi

dalillar keltirilgan. Quyidagi misol usulni chaqiradi

kafedraga uchta chang'ichini qo'shish:

>>> kafedra yuklamasi (3)

Qo'ng'iroq usulining sintaksisini qisqacha ko'rib chiqing. Avval ekzema ko'rsatiladi.

a kafedrasi bir davrda tomonidan ta'qib. Python-dagi nuqta qidirish uchun mo'ljallangan

atribut (agar u sonli tom ma'noda kelmasa). Qachon

misolni nuqta bilan ta'qib qilayotganingizni ko'rasiz, Python xohlaganligini unutmang

nuqtai nazardan keyin nima kelishini qidiring.

Birinchidan, Python instansiyadagi yuklarni qidiradi . Ushbu atributni misolda toping.

bajarilmadi (misol uchun konstruktorga tayinlanganligini eslang

faqat atributlar soni va id ). Biroq, misol shuningdek o'z ichiga oladi

sinfingizga bog'lang. Instantsiya bo'yicha qidiruv muvaffaqiyatsiz bo'lgani uchun,

Python ushbu atributlarni sinfda qidirishda davom etmoqda. .Load usuli aniqlaydi

kafedrasi sinfi uchun bo'linadi , shuning uchun Python uni qaytaradi. Dumaloq qavs

usul qo'ng'iroqni ko'rsating va 3 raqami parametr parametrida uzatiladi.

Yuk deklaratsiyasi qanday ko'rinishini eslang :

... def yuki (o'zini, raqamini):

# 6

... self.count + = raqam



Deklaratsiyada ikkita parametr ko'rsatiladi, o'z-o'zidan va raqam , va ular chaqirilganda,

faqat bitta parametr berilgan 3. Nima uchun parametrlar soni mos kelmaydi

tushadi? O'z- o'zidan parametr namunani ( bu holda stul ) anglatadi.

Python chaqiradi .load usuli o'tib, stul ham o'zini parametr Tinch Okeani va 3





205-bet

21.5. Lahzani tahlil qilish

205

raqam parametrlari . Aslida, Python u bilan bog'liq bo'lgan barcha muammolarga g'amxo'rlik qiladi

o'zi parametr bilan ishlaydi va uni avtomatik ravishda uzatadi.

ESLATMA

Ko'rish qo'ng'irog'idan foydalanganda

stul yuklamasi (3),

ichki amalga oshirishda, quyidagi shaklda qo'ng'iroq ishlatiladi:

Kafedra yuklamasi (stul, 3).

Siz ushbu usulni sinab ko'rishingiz va uning ishlashiga ishonch hosil qilishingiz mumkin, ammo

Bu amalda tavsiya etilmaydi, chunki bunday kod yomon o'qiladi

va ko'proq joy egallaydi.



21.5. Lahzani tahlil qilish

Agar sizda misol bo'lsa va uning xususiyatlarini bilishni istasangiz, bor

Bir nechta variant. Ma'lumotni hujjatlarda topish mumkin.

(agar mavjud bo'lsa). Siz belgilaydigan kodni o'qishingiz mumkin

sinf. Va nihoyat, siz uchun mo'ljallangan dir funktsiyasidan foydalanishingiz mumkin

Uni siz uchun eshiting:

>>> dir (stul)

['__class__', '__delattr__', '__dict__', '__dir__',

'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',

'__gt__', '__hash__', '__init__', '__le__', '__lt__',

'__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',

'__repr__', '__setattr__', '__sizeof__', '__str__',

'__subclasshook__', '__weakref__', 'count', 'id', 'load',

'max_occupants', 'tushirish']

Eslatib o'tamiz, dir funktsiyasi ob'ektning atributlarini ro'yxatga oladi. Burilish orqali

Dir hujjatiga murojaat qilsangiz, yuqorida ko'rsatilgan narsalar aniqlanganligini ko'rasiz

Dir, deb butunlay to'g'ri emas. Hujjatlar shunday deydi:

"... alfavit bo'yicha tartiblangan ismlarning ro'yxatini, shu jumladan o'z ichiga oladi

(ba'zi) berilgan ob'ektning atributlari, shuningdek mavjud atributlar

undan » .

yordam (dir) (bizning tanlovimiz)





206-bet

206

21-bob. Sinflar

Funktsiya ob'ektdan mavjud bo'lgan atributlarni namoyish etadi. Haqiqiy shart

Masalan, __dict__ atributida , bog'laydigan lug'atda saqlanadi

atributlar qiymatlari bilan nomlar:

>>> kafedra .__ dikt__

{'count': 3, 'id': 21}

Shunday qilib, misol uchun, faqat hisoblangan va id atributlari saqlanadi ,

va boshqa atributlar sinf orqali mavjud. Sinf qayerda saqlanadi?

__Class__ atributida :

>>> kafedra .__ sinf__

Sinov o'z sinfini bilishi juda muhim, chunki sinf saqlanadi

sinf usullari va xususiyatlari.

21.6. Shaxsiy va xavfsiz kirish

Ba'zi tillarda xususiy sifatlar tushunchasi mavjud va

todes. Ushbu usullar haqiqat tafsilotlari deb taxmin qilinadi

oxirgi foydalanuvchilar tomonidan chaqirilmasligi kerak. Bundan tashqari

dasturlash tili ularga kirishni blokirovka qilishi mumkin.

Python foydalanuvchilarni bezovta qilmoqchi emas. Taxminlar

Siz katta yoshli odamsiz va sizning harakatlaringiz uchun javobgar bo'lishga ishonasiz.

Agar biror narsaga kirishni xohlasangiz, uni amalga oshirishingiz mumkin.

Biroq, oqibatlarini qabul qilishga tayyor bo'ling.

Python dasturchilari ob'ekt qulay bo'lishi mumkinligini tushunishadi

saqlash holati va amalga oshirish tafsilotlari bo'lgan usullar.

Shunday qilib, oxirgi foydalanuvchi ushbu komponentlar emasligini tushunadi

um tutqichi, ularning ismlari pastki chiziq bilan boshlanadi. Quyida

yordamchi usul bilan sinf ._ oldindan belgilanmagan, tekshiriladi.

hamma qo'ng'iroq qilish uchun tayinlangan:

>>> sinf CorrectChair:

... '' 'Kafedrada stul' ''

... max_occupants = 4





207-sahifa

21.7. Mehmonlar oqimini taqlid qiladigan oddiy dastur

207

...


... def __init __ (o'zini, id):

...


self.id = id

...


self.count = 0

...


... def yuki (o'zini, raqamini):

...


yangi_val = o'z-o'zini tekshirish (self.count + number)

...


self.count = yangi_val

...


... def tushirish (o'zim, raqam):

...


new_val = self._check (self.count - number)

...


self.count = yangi_val

...


... def _check (o'z-o'zidan, raqam):

...


agar <0 yoki raqam> self.max_occupants:

...


oshirish ValueError ('Noto'g'ri hisoblash: {}' formati (

...


raqam))

...


qaytarish raqami

._Check usuli shaxsiy hisoblanadi - faqat unga kirish kerak

misollar. Xususiy usullar .load va .unload metodlari bilan chaqiriladi

sinf. Agar xohlasangiz, ularni sinfdan tashqarida qo'ng'iroq qilishingiz mumkin. Yo'q

buni kamroq qilish kerak emas - belgi bilan chizilgan barcha tarkibiy qismlar

Raqamlar yo'q bo'lishi mumkin bo'lgan amalga oshirish tafsilotlari hisoblanadi.

sinfning kelajakdagi versiyalarida.

21.7. Oddiy simulyatsiya dasturi

tashrif buyuruvchilar oqimi

Biz tog'da chang'ichilar oqimini taqlid qilish uchun sinfdan foydalanamiz

chang'i kurorti. Biz bir qator asosiy taxminlarni qilamiz - masalan, bu haqida

har bir o'rindiq 0 dan max_occupantsgacha teng imkoniyatga ega

chang'ichilar. Sinf liftni yoqadi, yuklaydi va ichkarida ishlaydi

yakuniy tsikl. Sekundiga to'rt marta joriy statistika ko'rsatiladi:

tasodifiy import

import vaqti

sinf CorrectChair:

'' 'Kafedrada stul' ''

max_occupants = 4



208-bet

208

21-bob. Sinflar

def __init __ (o'zi, id):

self.id = id

self.count = 0

def yuki (o'zini, raqamini):

yangi_val = o'z-o'zini tekshirish (self.count + number)

self.count = yangi_val

def tushirish (o'zini, raqam):

new_val = self._check (self.count - number)

self.count = yangi_val

def _check (o'z-o'zidan, raqam):

agar <0 yoki raqam> self.max_occupants:

oshirish ValueError ('Noto'g'ri hisoblash: {}' formati (

raqam))

qaytarish raqami



NUM_CHAIRS = 100

stullar = []

diapazondagi raqamlar uchun (1, NUM_CHAIRS + 1):

stul.append (CorrectChair (num))

def avg (stullar):

jami = 0


stullar uchun c:

jami + = c.count

orqaga qaytish / len (stullar)

in_use = []

tashilgan = 0

haqiqat:


# yuk

yuklash = stullar.pop (0)

in_use.append (yuklanmoqda)

in_use [-1] .load (tasodifiy.randint (0, CorrectChair.max_occupants))

# tushirish

agar len (in_use)> NUM_CHAIRS / 2:

yuklash = in_use.pop (0)

tashildi + = tushirish.ko'lam

tushirish (yuklash)

stullar qo'shish (tushirish)





209-bet

21.9. Mashqlar

209

chop etish ('Yuklash stul {} soni: {} o'rtacha: {:. 2} jami: {}'. format

(loading.id, yuklash. son, o'rtacha (in_use), tashilgan))

vaqt.xotira (.25)

Ushbu dastur cheksiz chang'ichilar sonini ko'rsatadi

ko'taring. Ma'lumotlar terminalga chiqariladi, ammo bosib chiqarish funktsiyasi mumkin

CSV fayliga ma'lumotlarni chiqarish uchun kod bilan almashtiriladi.

Faqat ikkita raqamni o'zgartirib (global qiymat NUM_CHAIRS va atributlar sinfi)

sa CorrectChair.max_occupants ), siz modelning xatti-harakatlarini o'zgartirishingiz mumkin

kattaroq yoki kichikroq ko'tarishni taqlid qilish uchun. Qo'ng'iroqlar tasodifiy.

randintni aniqroq aks ettiradigan funktsiya bilan almashtirish mumkin

yuk taqsimoti.



21,8. Xulosa

Ushbu bobda sinflar batafsilroq muhokama qilindi. Biz muhokama qildik

sinflar bilan bog'liq atamalar. Siz "ob'ekt" yoki aytishingiz mumkin

"Instans"; bu atamalarni sinonim deb hisoblash mumkin. Har bir ob'ekt

ba'zi sinf bilan bog'liq. Sinf - bu qandaydir zavod, men aniqlayman

ob'ektlar / holatlarning umumiy harakati.

Ob'ekt qurilish deb ataladigan maxsus usul bilan yaratiladi.

torus. Ushbu usul __init__ deb nomlangan . siz ham qila olasiz

O'zingizning sinf usullaringizni aniqlang.

Sinfni yaratishda ehtiyotkorlik bilan o'ylash kerak. Nima

sinfda atributlar bo'lishi kerakmi? Agar xususiyat doimiy bo'lib qolsa

barcha ob'ektlar uchun uni sinfda aniqlang. Agar atribut o'ziga xos bo'lsa

ob'ekt, uni konstruktorga o'rnating.

21.9. Mashqlar

1. Tasavvur qiling, siz bank uchun ariza tayyorlaysiz. Qanday

mijoz modeli ko'rinishi kerakmi? U qanday fazilatlarga ega bo'lishi kerak

egalik qilmoq U qaysi usullarni qo'llab-quvvatlashi kerak?

2. Super Mario seriyasidan o'yin yaratyapsiz deb tasavvur qiling. Zarur

Mario o'yinining qahramonini ifodalaydigan sinfni aniqlang. Qanday qilib u





210-bet

210

21-bob. Sinflar

bolalarga o'xshaydimi? Agar siz Super Mario o'yinlari bilan tanish bo'lsangiz,

moda uchun sevimli video yoki stol o'yinidan foydalaning

lirovany o'yinchi.

3. Tvitlarni simulyatsiya qilish uchun sinf yarating ("Tvit-

re "). Agar Twitter nima ekanligini bilmasangiz, Vikipediyada,

quyidagi ta'rif 1 ishlatiladi : “[...] uchun ijtimoiy tarmoq

veb-interfeys, SMS,

tezkor xabarlar yoki uchinchi tomon vositalari

Gram mijozlari har qanday yoshdagi Internet foydalanuvchilari uchun. "

4. Uy anjomlarini modellashtirish uchun sinf yarating (

o'chiriladi, kir yuvish mashinasi, muzlatgich va boshqalar).

1

https://ru.wikipedia.org/wiki/Twitter





211-sahifa

22 Subklassing

Guruhlash holati va operatsiyalardan tashqari, sinflar ham mavjud

kodni qayta ishlatish. Agar sizda allaqachon sinf bo'lsa va sizga kerak bo'lsa

uning xatti-harakatlaridan bir oz farq qiladigan boshqa sinf, usullardan biri

Qayta foydalanish xususiyati subklassing . Sinf

qaysi subklassing amalga oshirilayotganiga superklass deyiladi

(Yana bir keng tarqalgan superklass nomi ota-ona sinfidir ).

Aytaylik, siz oltitani ushlab turadigan stulni yaratmoqchisiz

chang'ichilar. Kafedrani simulyatsiya qiladigan kafedra 6 sinfini yaratish

olti kishi - kafedraning yanada ixtisoslashgan versiyasi , siz qila olasiz

subklassingdan foydalaning. Subklasslar dasturchiga ruxsat beradi

ota-onalar sinflari usullarini meros qilib olish va ularni bekor qilish usullari,

o'zgartirish kerak.

Quyida bo'lgan Chair6 sinf bir sinf bo'lib, CorrectChair :

>>> sinf kafedrasi6 (To'g'riChair):

... max_occupants = 6

Shuni yodda tuting: ota-sinf CorrectChair emas

sinf nomidan keyin qavslar. E'tibor bering, kafedra6 belgilamaydi

tanangizdagi konstruktor, ammo siz sinfni yaratishingiz mumkin:

>>> oltita = stul6 (76)

Agar sinfda hech qanday konstruktor aniqlanmasa, Python qanday qilib ob'ektni yaratadi? Bu yerda

nima bo'ladi: Python .__ ташабб__ usulini qidirganda qidirish boshlanadi





212-sahifa

212

22-bob. Subklassing

Subklasslar

sinf kafedrasi6 (To'g'riChair):

max_occupants = 6

Kod


Kompyuter nima qiladi

To'g'riChair

Id: 1aea

__-sinf __: turi

max_occupants

__init__


...

Id: 1ca8


__class __: funktsiyasi

Kafedra6


6

Int


4

Int


Id: 1ce4

__-sinf __: turi

max_occupants

__bazlar__

Id: 1cb2

__class __: tuple

(,)

Anjir. 22.1. Subklassda __bases__ atributi. Kichik sinf va uning o'rtasidagi munosabatlar

ota-onalar sinflari sizga aniqlangan atributlarni qidirishga imkon beradi

xop. Agar atribut quyi sinf misolida aniqlansa, u holda bu

xususiyat. Agar yo'q bo'lsa, unda misoldan keyin qidirish sinfda davom etadi (__class__)

misol. Agar ushbu urinish ham bajarilmasa, qidiruv amalga oshiriladi

ota-onalar sinflarida (__ bazalar__)





213-sahifa

Subklassing

213

Subklasslar

olti = Kafedra6 (76)

Kod


Kompyuter nima qiladi

To'g'riChair

Id: 1aea

__-sinf __: turi

max_occupants

__init__


...

Id: 1ca8


__class __: funktsiyasi

Kafedra6


olti

6

Int



4

Int


Id: 1ce4

Id: 1cf1


Id

Hisoblang

max_occupants

__bazlar__

Id: 1cb2

__class __: tuple

__-sinf __: turi

__-sinf __: Kafedra6

(,)

Int


0

76

Int



Anjir. 22.2. Subklass namunasini yarating. Eslatma:

misol o'z sinfiga ko'rsatgichni o'z ichiga oladi va sinf ko'rsatgichlarni o'z ichiga oladi

barcha ota-onalar sinflariga (atribut __ bazalari__)



214-bet

214

22-bob. Subklassing

bilan Chair6 . Kafedra6 sinfida faqat max_occupants atributi mavjudligi sababli ,

Python bu erda .__ ташабб__ usulini topa olmaydi . Lekin beri Chair6 emas

CorrectChair subklassida ro'yxatdagi __bases__ atributi mavjud

tayanch sinflar ko'paytmaga qisqartirildi:

>>> Kafedra6 .__ asoslari__

(__ kun __. To'g'riChair,)

Keyin Python asosiy sinflarda konstruktorni qidiradi. U qurilishni topadi

CorrueChair-dagi torus va undan yangi sinf yaratish uchun foydalanadi.

Xuddi shu izlash . Misol uchun .load ni chaqirganda ham sodir bo'ladi . Egzamada

usul nomiga mos keladigan biron bir atribut yo'q, shuning uchun Python

misol sinfini tekshiradi. In Chair6 ham hech usuli .load shunday,

Python CorrectChair asosiy sinfida atribut qidiradi . Bu erda .load usuli

haddan tashqari qiymat bilan chaqirilgan, bu xatoga olib keladi

QiymatError :

>>> yuklash (7)

Traceback (eng so'nggi qo'ng'iroq oxirgi):

Fayl "/tmp/chair.py", 30-qator, da

oltitalik (7)

"/Tmp/chair.py" fayli, 13-qator, yuk ostida

yangi_val = o'z-o'zini tekshirish (self.count + number)

"/Tmp/chair.py" fayl, 23-qator, _check-da

raqam))


ValueError: Noto'g'ri hisoblash: 7

Python bazasi sinfda bir usul, lekin usuli chaqiruv ._check privo-

ValueError xatosiga olib keladi .

22.1. Sanoq to'xtashlari

Ba'zan chang'ichi liftni to'g'ri bajara olmaydi. Bunday

Agar operator ko'tarishni sekinlashtirsa yoki to'xtatsa,

chang'ichiga yordam berish. Yaratish uchun Python-dan foydalanishimiz mumkin

bunday bekatlar sonini hisoblaydigan yangi sinf.

Aytaylik, yuklash uchun har bir qo'ng'iroq funktsiyani chaqiradi ,

bu to'xtash yoki mantiqiy alomatni qaytaradi



215-sahifa

22.2. juda zo'r

215

yo'q. Chang'ichlar soni va ob'ekt funktsiya parametrlariga o'tkaziladi

kreslolar.

Quyidagi konstruktsiyada is_stalled funktsiyani oladigan sinf.

yirtib tashladi. Bu funktsiya har safar chaqiriladi .load deyiladi :

>>> sinf StallChair (To'g'riChair):

... def __init __ (o'zi, id, o'rnatildi):

...


super () .__ tashabbus __ (id)

...


self.is_stalled = is_stalled

...


self.stalls = 0

...


... def yuki (o'zini, raqamini):

...


agar self.is_stalled bo'lsa (raqam, o'zi):

...


self.stalls + = 1

...


super (). yuk (raqam)

Ushbu sinf misolini yaratish uchun siz funktsiyani taqdim etishingiz kerak

yozildi is_stalled . Quyidagi oddiy funktsiya to'xtashlarni keltirib chiqaradi

10% hollarda:

>>> tasodifiy import

>>> def ten_percent (soni, stul):

... "" "Haqiqiy 10% vaqtni qaytaring" ""

... random.random () <.1 ni qaytaring

Endi siz bildirib, bir misol yaratishingiz mumkin ten_percent vazifasini sifatida

sozlangan parametr :

>>> stall42 = StallChair (42, o'n foiz)


Download 363.98 Kb.

Do'stlaringiz bilan baham:
1   ...   13   14   15   16   17   18   19   20   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling