@wraps декоратор

Декораторийн суурь ойлголтод бас нэгэн чухал зүйлийг ойлгох хэрэгтэйг Декораторууд хичээлд үүсгэсэн

log_decorator -ийн жишээн дээр харцгаая.

Эхний гурван нүдний код Декораторууд хичээлийнхтэй ижил тул тайлбарлах шаардлагагүй. Харин 4-р нүдэнд help -ээр hello функцийн талаарх мэдээллийг харахад функцийг wrap гэж гаргасан. Уул нь hello гэж баймаар. Гэхдээ log_decorator декоратор wrap функцийг буцаах тул ажиллагааны энэ төлөв зөв ч програмийн кодод debug хийх буюу ямар нэгэн алдааг илрүүлэхэд асуудал үүсгэнэ. Ажиллагааны энэ төлөв декоратор тавигдсан аль функцээс дуудалт хийгдсэн, функцийн нэр юу болох, кодийн ажлын урсгалыг тогтоох зэрэгт амархан төөрөгдөлд оруулна. Иймээс интерпретаторт асуудлыг зөв ойлгуулан бүгдийг хэвийн горимоор ажлуулахын тулд functools модулийн @wraps декораторыг ашиглаж болно. Декоратор бичихдээ декоратор ашиглана гэдэг нь сонин байж болох үүнд төвөгтэй асуудал байхгүйг

жишээ харуулна. @wraps декораторыг ашиглахын тулд 1 -р нүдэнд functools модулаас wraps -ийг импортлон аваад log_decorator функцэд ирэх функцийг @wraps декораторт дамжуулна. @wraps декоратор багцлагдаж буй функц буюу түүнд дамжуулсан функцийн бүх мета өгөгдлийг гадагш өгөх боломжийг бүрдүүлнэ. Багцлагч wrapper функцуудад дурын параметрүүдийг авах үүднээс ихэнхдээ *arg, **kwargs -ийг тодорхойлон өгөөд тэдгээрийг дуудах функцэд дамжуулдаг. Одоо 3 -р нүдэнд hello функцэд log_decorator декораторыг тавин өгөөд 4 - р нүднийх шиг функцийг help функцэд өгвөл wrap биш hello нэрийг авна. Өөрийн коддоо декоратор ашиглахаар болбол @wraps декораторыг ашиглан интерпретаторийн анхдагч ажиллагааны төлөвийг өөрчлөн кодийн зүгшрүүлэлтийн ажиллагааг хөнгөн, ойлгомжтой болгохыг зөвлөе.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 1607 Нийтийн

Өмнөх хичээлүүдэд сурсан логик шалгалт, циклийн мэдлэгээ ашиглан програмчлалын стандарт жишээ "Тоог таа" энгийн тоглоомын програмыг бичье. Тоглоомын логик нь компьютер 1 -50 -ын хооронд санамсаргүй байдлаар сонгосон тоог хэрэглэгч 6 удаагийн оролдлогоор олох юм. Та програмийн кодийг өмнөх хичээлүүдээр сурсан бүтцүүдийг ашиглан бичих гээд үзээрэй.

Санамж: Тавигдсан асуудлын шийдлийг өөрөө олон кодлож сурахыг байнга эрмэлзэх хэрэгтэй. Ер нь програм бүтээх бол олон чиглэлийн мэрэгжилтнүүдийн хамтын ажил байдаг. Бид програмчлалийн python хэлийг судалж байгаа тул кодлогчдод тавигдах асуудлыг хэрхэн шийдэхэд л анхааран бэлэн алгоритм бүхий энгийн "Тоог таа" тоглоомыг сонгосон хэрэг.

  Нээгдсэн тоо: 508 Төлбөртэй

Обьект хандалгат програмчлалын технологид нэг ба түүнээс дээш абстракт аргуудыг агуулсан классийг абстракт класс гэж нэрлэдэг. Абстракт арга гэдэг нь абстракт класст тодорхойлогдсон боловч удамшиж буй классууд заавал хэрэгжүүлэлтийг тодорхойлох ёстой тусгай декораттороор тэмдэглэсэн аргууд юм. Python абстракт классуудийг дэмжих дотоод механизмгүй бөгөөд энэ зорилгод abc (Abstract Base Class) тусгай модулийг ашигладаг. Абстракт классийн жишээг харцгаая.

  Нээгдсэн тоо: 807 Төлбөртэй

Програмчлалын хэлүүдийн чансаа буюу рэнкд Python нилээд дээгүүр байр эзэлдэгийг бүгд мэдэх байх. Хэлний бичлэгийн дүрэм бусдаас багахан ялгаатай ч функцийн сан баялаг, ойлгоход энгийн, код бичилт богино, ОХП -ийг бүрэн дэмждэг, сервер талын скриптүүд бичихэд хялбар, нээлттэй эх кодтой гээд олон давуу талуудтайн дээр сүүлийн жилүүдэд их, дээд сургуулиуд Python -г сургалтын програмын үндсэн хэлүүддээ багтаах болсон. Жишээ дурдвал ижил асуудлын C# хэл дээрх кодоос Python дээрх код бараг 30 хувь бага гэсэн судалгаа хүртэл байдаг. ОХП -ийн суурийг Python -нд маш энгийнээр их ойлгомжтой хэрэгжүүлсэн нь түүнийг их, дээд сургуулиуд сургалтын програмдаа оруулах гол шалтгаан болсон болов уу. Та програмчлалын хэлийг судалж эхлэж байгаа бол Python муугүй сонголт гэдгийг зөвлөх байна.       

Хичээлд лямбда ухагдхуун, map, filter функцуудийн талаар авч үзье. Эхлээд элементүүдийн дараалалд өөрчлөлт хийх функцуудийг авч үзье.

  Нээгдсэн тоо: 1205 Бүртгүүлэх

collection -ийг багц эсхүл цуглуулга гэж орчуулж болох ч өргөн ашиглааад байдаггүй тул collection нэрээр нь ашиглах нь илүү. tuple бол collection төрлийнх. tuple -ийг энгийнээр өөрчлөлт авдаггүй жагсаалт гэж ойлгож болно. tuple -төрлийг жишээнүүдээр авч үзье.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 293

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 370

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 339

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 435

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 484

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 508

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 601

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 694

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 731

 
Энэ долоо хоногт

a ба b катеттай тэгш өнцөгт гурвалжин ерөнхий тэгш өнцөгтэй квадратыг багтаасан бол квадратын периметрийг ол.

Нээгдсэн тоо : 1136

 

функцийн графикийн (0,-1) цэгт татсан шүргэгч шулуун ба координатын тэнхлэгүүдээр хашигдсан мужийн талбайг ол.

Нээгдсэн тоо : 752

 

тэнцэтгэл бишийн хамгийн их бүхэл шийдийг ол.

Нээгдсэн тоо : 822