Рубрики
Без рубрики

Python для программистов часть 3; Классы и импорт

Это серия на Python и как правильно использовать Python при выходе из фона в другой … Теги с Python, учебником, Linux.

Это серия на Python и как правильно использовать Python при выходе из фона на другом компьютерном языке. Из-за этого это не будет медленным вступлением в программирование, и предполагается, что у вас есть предпочтительный текстовый редактор и достаточно умны, чтобы получить Python Runc. Вы можете скачать установки и пакеты с их официального сайта найден здесь Отказ Основные знания о том, как использовать Гит И как управлять компьютером также предпочтительным.

Эта серия предполагает, что вы знакомы с некоторой формой компьютерного языка и базовых парадигм. C/C ++, JavaScript и GO будет передан большинству, поскольку они являются моими самыми знакомыми языками, отличными от Python, но любой, кто с опытом в самом отношении чего-либо еще должен быть в состоянии следовать.

Также я знаю, Python называет их методами Но я использую «методы» и «функцию» взаимозаменяемо.

Из последней статьи есть что-то, что я испытывал, что вы испытали объектно-ориентированные программисты, а хакеры, вероятно, были бы в ужасе без: классов. Классы очень подгреются в природе Питона. Создание класса можно сделать так.

# This file is named "dogs.py"

class Dog:
    # this is a class variable and will be shared
    # with all instances of class 'Dog'
    genus = 'canine'

    # this function gets called
    # When you initialize a new instance
    # of the class 'Dog'
    # these variables are on a per instance
    # basis and will not be shared.
    def __init__ (self, name, age):
        self.age = age
        self.name = name
        self.parts = {}
        self.furry = True
        self.hypoallergenic = False

    # this will be called when the 
    # class needs to be represented
    # such as when you try to print
    # an instance of it
    def __repr__ (self):
        return f"({self.name}, {self.age})"

    def set_parts(self, tails=1, ears=2, paws=4):
        self.parts = { # this sets the instance variable
            "tails": tails,
            "ears": ears,
            "paws": paws
        }
        return self.parts # You can also return the value like a standard function

    def sheds(self):
        if self.furry and not self.hypoallergenic: # using the instance variables within logic
            return True
        return False

    @static_method # this is a method that can be 
    def bark(): # called without instantiating a class
        print('Bark Bark!')

if __name__ ==" __main__": # Only run if the file is being explicitly ran as a script.
    # Here is how to use the class
    murphy = Dog("Murphy", 7)
    murphy.bark()
    murphy.set_parts() # ticks all of the boxes for the default
    if murphy.sheds():
        print("You should buy a roomba.")

    champion = Dog("Champion", 2)
    champion.set_parts(1, 2, 3) # The dog from Parks and Rec only has 3 legs

    print(murphy)
    print(champion)

    # you can also call static methods like this
    Dog.bark()

Переменные экземпляра могут быть определены в функциях с Я. <Вар имя> И я предпочитаю определять все те, которые я буду пользоваться в __init__ Способ моей собственной организации. Переменные классов определяются вне методов и передаются между всеми функциями даже при изменении. Например, если бы я должен был изменить родом Мерфи к «кошке» или что-то абсурдно, родом чемпионов также изменится. Также классы могут наследовать другие классы. Вот пример, предполагая, что предыдущий код, связанный с классом, был импортирован ранее.

from dogs import Dog 

class Labrador(Dog):
    def is_purebred(self):
        return True

if __name__ ==' __main__'
# the class labrador would have the same 
# methods, class vars and instance vars as
# the previous dog class.
marley = Labrador("Marley", 14)
marley.bark()
marley.set_parts()
if marley.sheds():
    print("Labs shed a lot.")

if marley.is_purebred():
    print("This dog is pure!")

В этом примере я импортировал некоторые из ранее написанного кода. Когда вы называете Импорт Заявление, Python ищет в нескольких местах для вашего кода. Места, которые он ищет, называется Pythonpath и ваш текущий каталог включен. Когда вы импортируете другой файл в Python, имя файла опущено. Вот еще один пример импорта:

import os

from dogs import Dog

name = os.getenv('DOG_NAME')
age = os.getenv('DOG_AGE')

dog = Dog(name, age)

В этом примере импорта стандартный библиотечный модуль ОС был использован. Этот модуль дает доступ к функциям операционной системы во время оставшихся платформы Agnostic, поэтому функции будут работать на любой ОС.

Заказ на импорт, пока не насилился, обычно идет так:

import standard_library

import pypi_module

import local_module

Чтобы установить модуль PYPI, запустите команду PIP Установите <Имя> Отказ Общие модули включают Запросы , действительно простая библиотека запроса на отдых HTTP, Колбу , популярный и легкий HTTP Server Server, а Подушка библиотека манипулирования изображениями. Многие, многое существуют и можно найти на Pypi Отказ

Обычно при работе с множеством пакетов Python используются виртуальные среды. Они делают установку пакетов на уровне проекта, похожи на то, как NPM устанавливает пакеты локально. Посмотреть здесь Для установки инструкции.

Использовать на Windows:

python -m venv env
.\env\Scripts\activate

Использовать на MacOS & Linux:

python3 -m venv env
source env/bin/activate

Затем вы можете установить пакеты, как указано ранее, но они будут установлены в виртуальную среду. Чтобы сохранить все пакеты для последующего использования в другой системе, запустите PIP Freeze> Требования. TXT Отказ Для установки пакетов из свежей виртуальной среды:

python3 -m venv env
source env/bin/activate
pip install -r requirements.txt

Все пакеты в требования .txt будет установлен в виртуальную среду. Это эквивалентный узел Package-lock.json Файл и должен быть привержен для вашего исходного управления.

Это завершает Python для программистов, часть 3.

Оригинал: “https://dev.to/chand1012/python-for-programmers-part-3-classes-and-imports-2n57”