1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/52itstyle-Python

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
python高级语法.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.03.2025 13:54 94965f6

Высокая синтаксическая конструкция

Определение функции

  def func():
     # statement...
     [return]

Определение модуля

  Каждый Python файл является модулем
 Каталог, содержащий модуль, также является модулем

Импорт модулей

  import ${module_name} # module_name - это имя файла модуля, без расширения .py
 from ${module_namespace} import ${module_name} # импортирование модуля из пространства имён модуля

Объектно-ориентированное программирование

Создание класса

Для создания нового класса используется ключевое слово class, после которого следует имя класса и двоеточие:

class ClassName:
    'Документация класса'   # строка документации класса
    class_suite  # тело класса

Примечание Методы класса отличаются от обычных функций тем, что они должны иметь один обязательный первый аргумент — self. В соответствии с соглашением этот аргумент обычно называется self. Пример:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
class Employee:
   'Базовый класс всех сотрудников'
   emp_count = 0

   def __init__(self, name, salary):
       self.name = name
       self.salary = salary
       Employee.emp_count += 1

   def display_count(self):
       print(f"Общее количество сотрудников: {Employee.emp_count}")

   def display_employee(self):
       print(f"Имя: {self.name}, Зарплата: {self.salary}")
```  Выше приведенный пример выводит следующий результат:
> <__main__.Employee object at 0x10d066878>
>  __main__.Employee
### Создание экземпляров объектов
В других языках программирования создание экземпляра класса осуществляется с помощью ключевого слова new, но в Python такого ключевого слова нет. Экземпляр класса создаётся аналогично вызову функции.
Ниже показано, как использовать имя класса Employee для создания экземпляров и передачи параметров через метод \_\_init\_\_.
```python
"Создание первого объекта класса Employee"
emp1 = Employee('Зара', 2000)
"Создание второго объекта класса Employee"
emp2 = Employee('Мани', 5000)
```  Доступ к свойствам
Свойства объекта можно получить с помощью точки (.). Чтобы получить доступ к переменной класса, используйте имя класса:
```python
emp1.display_employee()
emp2.display_employee()
print(f"Общее количество сотрудников: {Employee.emp_count}")
```  ### Встроенные атрибуты класса Python
__dict__ : Атрибуты класса (словарь, состоящий из данных класса)
__doc__ : Документация класса
__name__ : Имя класса
__module__ : Модуль, где определён класс (полное имя класса равно '__main__.ClassName', если класс определён в модуле mymod, то __module__ равен mymod)
__bases__ : Все родительские классы данного класса представлены в виде кортежа (включает кортеж всех родительских классов)

### Уничтожение объекта Python (механизмы сборки мусора)
#### Синтаксис
```**del instance**```

Python использует простую технику отслеживания и сборки мусора через счетчики ссылок.
Внутри Python поддерживается учёт всех активных объектов и количества ссылок на каждый из них.
Внутренний счетчик ссылок создаётся при создании каждого объекта.
Когда объект больше не используется, то есть когда количество ссылок на него становится равным нулю, он подлежит удалению как мусор.
Однако удаление не происходит немедленно; интерпретатор выполняет его в подходящий момент.
Механизм сборки мусора предназначен не только для объектов со счетчиками ссылок равными нулю, но также и для обработки циклических ссылок.
Циклические ссылки возникают, когда два объекта взаимно указывают друг на друга, но ни один из них не имеет других ссылок на себя.
Для таких случаев использование только счетчиков ссылок недостаточно.В Python сборщик мусора представляет собой сочетание счетчика ссылок и механизма сборки мусора для циклических ссылок. Сборщик мусора также следит за общим объемом памяти, занимаемым объектами, которые не были удалены через счетчики ссылок. В этом случае интерпретатор временно прекращает выполнение программы, чтобы попытаться очистить все циклические ссылки, которые больше не используются.### Наследование классов
Одним из основных преимуществ программирования с использованием объектов является возможность повторного использования кода, что достигается, среди прочего, благодаря механизмам наследования.
Новый класс, созданный путём наследования, называется производным или потомком, а класс, от которого происходит наследование,  базовым, родительским или суперклассом.
#### Синтаксис наследования
```python
class ПроизводныйКлассНазвание(БазовыйКлассНазвание):
  ...
```В Python некоторые особенности наследования:
1. Если в производном классе требуется конструктор родительского класса, его следует явно вызвать или не переопределять конструктор родителя. Подробнее можно узнать здесь: описание наследования конструктора родительского класса в Python.
2. При вызове методов базового класса необходимо использовать префикс имени класса и передать параметр `self`.
3. Python всегда сначала ищет методы соответствующего типа в текущем классе; если он не может найти метод в производном классе, он начинает искать методы в каждом из базовых классов последовательно.
Если в списке наследования указано более одного базового класса, это называется "множественным наследием".

#### Синтаксис
Производный класс объявляется аналогично его родительским классам; список базовых классов следует за именем класса, как показано ниже:
```python
class SubClassName (ParentClass1[, ParentClass2, ...])

Атрибуты и методы класса

Приватные атрибуты класса

__private_attrs: два нижних подчеркивания в начале указывают на то, что это приватный атрибут, который нельзя использовать или непосредственно обращаться к нему вне класса. Внутри методов класса используется как self.__private_attrs.#### Методы класса Внутри класса можно определить метод с помощью ключевого слова def. Отличие от обычной функции заключается в том, что каждый метод класса должен содержать параметр self, который является первым параметром.

Приватные методы класса

__private_method: два нижних подчеркивания в начале указывают на то, что этот метод является приватным и его нельзя вызвать вне класса. Внутри класса он вызывается через self.__private_methods.

Объяснение одиночных, двойных подчеркиваний и специальных случаев:

__foo__: Определяют специальные методы, обычно это системные имена, такие как __init__(). _foo: Одно нижнее подчеркивание в начале указывает на защищённый тип переменной, доступна только внутри класса и его потомков. __foo: Два нижних подчеркивания в начале указывают на приватный тип переменной, доступна только внутри самого класса.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/52itstyle-Python.git
git@api.gitlife.ru:oschina-mirror/52itstyle-Python.git
oschina-mirror
52itstyle-Python
52itstyle-Python
master