Внешние классы в Python

df.set_index('name').unstack().reset_index().rename(columns={'level_0':'Code'}).dropna().drop(0,axis =1)[['name','Code']].sort_values('name')

выходной будет

name    Code
alex    2
alex    3
john    1
mike    1
rachel  0
rachel  4
5
задан gahooa 28 February 2009 в 21:04
поделиться

4 ответа

О import оператор:

(хорошая рецензия по http://effbot.org/zone/import-confusion.htm, и учебное руководство по Python вдается в подробности по http://docs.python.org/tutorial/modules.html),

Существует два нормальных способа импортировать код в программу Python.

  1. Модули
  2. Пакеты

Модуль является просто файлом, который заканчивается в .py. Для Python это должно существовать на пути поиска (как определено в sys.path). Путь поиска обычно состоит из того же каталога .py, который выполняется, а также системные каталоги Python.

Учитывая следующую структуру каталогов:

myprogram/main.py
myprogram/rss.py

От main.py можно "импортировать" классы RSS путем выполнения:

import rss
rss.rss_class()

#alternativly you can use:
from rss import rss_class
rss_class()

Пакеты обеспечивают более структурированный способ содержать большие программы Python. Они - просто каталог, который содержит __init__.py а также другие файлы Python.

Пока каталог пакета идет sys.path, затем это может использоваться точно то же как выше.


Для нахождения текущего пути выполните это:

import sys
print(sys.path)
15
ответ дан 18 December 2019 в 08:31
поделиться

Мне действительно не нравится отвечать настолько поздно, но я не совсем удовлетворен существующими ответами.

Я только начинаю Python, и я хотел бы использовать внешний класс RSS. Куда я помещаю тот класс и как я импортирую его?

Вы помещаете его в файл Python и даете файлу Python расширение .py. Затем можно импортировать модуль, представляющий тот файл, и получить доступ к классу. Предположим, Вы хотите импортировать его, необходимо поместить файл Python где-нибудь в путь поиска импорта - Вы видите это во времени выполнения с sys.path, и возможно старшая значащая вещь знать состоит в том, что пакеты сайта (определенный для установки) и текущий каталог ('') обычно находятся в пути поиска импорта. Когда у Вас есть единственный гомогенный проект, Вы обычно помещаете его в тот же каталог как Ваши другие модули и позволяете им импортировать друг друга из того же каталога.

Я хотел бы в конечном счете смочь совместно использовать программы Python.

После того, как у Вас будет настроенный как автономный файл, можно получить настроенный для распределения с помощью distutils. Тем путем Вы не должны волноваться о том, где, точно, это должно быть установлено - distutils, будет волноваться для Вас. Существует много других дополнительных средств распределения также, многие определенные для ОС - distutils работы для модулей, но если Вы хотите распределить надлежащую программу, которую пользователи предназначены для выполнения, другие опции существуют, такие как использование py2exe для Windows.

Что касается различия модулей/пакетов, ну, в общем, здесь это идет. Если у Вас есть целый набор классов, которые Вы хотите разделенный так, чтобы у Вас не было одной большой путаницы файла Python, можно разделить ее на несколько файлов Python в каталоге и дать каталог __init__.py . Важная вещь отметить состоит в том, что из Python, нет никакого различия между пакетом и любым другим модулем. Пакет является модулем, это - просто другой способ представить один в файловой системе. Точно так же модуль не является просто .py файлом - если это имело место, sys не был бы модуль, так как он не имеет никакого .py файла. Это встроено к интерпретатору. Существует бесконечно много способов представить модули в файловой системе, так как можно добавить рычаги импорта, которые могут создать пути кроме каталогов и .py файлов для представления модулей. Можно было, гипотетически, создать рычаг импорта, который использовал spidermonkey для загрузки файлов JavaScript как модулей Python.

2
ответ дан 18 December 2019 в 08:31
поделиться
from [module] import [classname]

Где модуль находится где-нибудь на Вашем пути Python.

1
ответ дан 18 December 2019 в 08:31
поделиться

О модулях и пакетах:

  • модуль является файлом, заканчивающимся .py. Можно поместить класс в такой файл. Как сказано Andy, это должно быть в Вашем пути Python (PYTHONPATH). Обычно Вы будете помещать дополнительный модуль в тот же каталог, как Ваш сценарий то, хотя, который может быть непосредственно импортирован.

  • пакет является каталогом, содержащим __init__.py (может быть пустым), и содержит файлы модуля. Можно затем импортировать а-ля from <package>.<module> import <class>. Снова это должно быть на Вашем пути Python.

Можно найти больше в documenation.

1
ответ дан 18 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: