ПредишенСледващото

Методичен развитие на урок
Избираема дисциплина: Въведение в обектно-ориентираното програмиране в Python
Ниво програмиране за начинаещи

На последния ни урок тя е написана от "сериозна" програма, която може да се използва от програмистите. Но как? Просто копирайте и поставете кода във вашите скриптове? Или има по-икономичен начин (в смисъл на намаляване на обема на кода и лекота на използване)?

При създаването на големи програми се оказаха благоприятно така наречената модулна подход към организацията, когато е налице основната част от файла с кода на програмата, който е свързан (което се внася), съдържанието на други файлове. Когато изходния код на основния файл е преведен на машинен код, внесените файловете също се извършват като основен код файла.

Модули и техните внос

Този начин за организиране на програма ви позволява да се изолират често се използва код в един модул файл, и след това да го импортирате в други файлове, без копиране на кода. Но това не е единственото предимство на модулен принцип на организацията на програмата.

И така, как да импортирате съдържанието на един файл в друг в езика за програмиране Python? Има два основни начина: ръчно внос и инструкции от. Първата инструкция започва (тълкува) файл модул напълно, с достъп до променливите (атрибути) на модула от главния файл трябва да посочи името на модула в предната част на желания признак: module.attribute (така наречената точкова нотация). Инструкции от интерпретатора пропуска само определени имена на файлове, модули, обаче достъпът до тях не е необходимо да се посочи името на променливите за модула. Първият метод е добър, ако волята да се използва съдържанието на почти цялата модула, а вторият - ако ще е необходима една или две функции или класа на модула. В примера на този урок ние ще използваме за употреба внос.

Вносът в езика за програмиране Python е както следва: след името на думата внос модул вносител е писано. Модулът и файла в Python концепции едва различими. Файлове с кода в Python обикновено имат .py разширение, но отчета за внос не се уточнява разширение. Например, ако имаме файл модул scale.py, а след това да ги импортирате в друг файл, както следва: скала внос.

Къде искате модула? По принцип, където и да е, защото можете да "ръчно" коригира интерпретатора, така че тя ще търси къде програмист желае. Въпреки това, ако не персонализирате интерпретатора на Питон, за да намерите файлове, ако те са поставени за пример в директорията, където сте инсталирали Python, или в същата директория като файла, към който се извършва вноса. Последната опция ще използваме.

Така че, ние имаме файл с код, който позволява да се изчисли с тапети Площ (Урок №7). Нека го нарича rooms.py. В допълнение, ние го премахнете от "тест код" ...

... и да приемем, че този модул ще бъде използван в класа си (най-вече) на файлове. Да приемем, че основният файл осигурява потребителския интерфейс за въвеждане на данни и получените резултати. Основната Файлът трябва да бъде записан в същата директория като rooms.py на файла.

На първо място, да импортирате съдържание rooms.py на файла

Освен организира искане данни от страна на потребителя, едновременно превръщане на данните за тип число (междинно функция):

Сега се създаде обект клас Стая за. Клас Описание на стаите е в модул, който е внесен за употреба внос (не от), така че, в който тя трябва да получат достъп до класа и нейните атрибути стая трябва да показва, когато даден обект модул:

А сега можете да използвате атрибутите на класа от модула колкото искате:

Практическа работа:

  1. Създаване на скрипт, който внася модула с по стаите клас и да го използвате (както е показано в този урок).
  2. Попълнете в предишната програма, разширяване на възможностите си: това е възможно в една заявка за повече информация (площ на прозореца и вратата).
  3. Възстановяване на програмата, така че да не се напомни на потребителя за данни, и предлага избор от пет готови решения: показва характеристиките на различните помещения - потребителят просто трябва да изберат.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!