Описание тега python-datamodel

По вопросам о различных деталях, связанных с моделью данных Python: встроенные типы, классы, метаклассы, магические методы __dunder__, операторы, инициализация объекта, поиск атрибутов и т. Д. Всегда не забывайте использовать тег "python" вместе с этим. Приветствуется использование специальных тегов, таких как "операторы" или "метакласс".
1 ответ

How to make Python 2's __getitem__ work on a class?

How do I make item access ie. __getitem__available on a class object in Python 2.x? Я пробовал: class B: @classmethod def __getitem__(cls, key): raise IndexError тестовое задание: B[0] # TypeError: 'classobj' object has no attribute '__getitem__' pr…
1 ответ

Как получить родительские классы класса в моем мета-классе?

У меня есть следующий скрипт: #!/usr/bin/python3 class MyMeta(type): def __new__(mcs, name, bases, dct): print(name + " " + str(bases)) return super(MyMeta, mcs).__new__(mcs, name, bases, dct) class A(metaclass=MyMeta): def foo(self): pass class B(A…
4 ответа

Поиск атрибутов python без какой-либо магии дескриптора?

Я начал более широко использовать протокол дескриптора Python в коде, который писал. Как правило, магия поиска по умолчанию в Python - это то, что я хочу, но иногда я обнаруживаю, что хочу получить сам объект дескриптора вместо результатов его __get…
27 окт '09 в 00:38
3 ответа

When where and how can i change the __class__ attr of an object?

Я хотел бы иметь возможность сделать: >>> class a(str): ... pass ... >>> b = a() >>> b.__class__ = str Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __class__ assignment: onl…
10 июн '10 в 09:45
4 ответа

Удалять элементы при прохождении списка в Python

В Java я могу сделать с помощью Iteratorа затем с помощью .remove() метод итератора для удаления последнего элемента, возвращаемого итератором, например: import java.util.*; public class ConcurrentMod { public static void main(String[] args) { List&…
30 авг '09 в 02:18
0 ответов

Учитывая метод, как получить класс, который определяет этот метод?

Если это метод класса, эта задача проста: class MyClass: @classmethod def some_fun(cls): pass fun = MyClass.some_fun my_class = fun.__self__ print (my_class is MyClass) # True Однако это работает только потому, что some_fun это classmethod, Давайте …
14 фев '19 в 20:10
5 ответов

python ImportError: невозможно импортировать имя 'Faker' из 'faker'

Привет , поэтому я писал этот сценарий для предварительного заполнения своей базы данных Django, но когда я перестал ее писать, я получил странную ошибку: Мой сценарий: import os os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'first_project.setting…
13 ответов

Получить полное имя класса объекта в Python

В целях ведения журнала я хочу получить полное имя класса объекта Python. (Под полной квалификацией я подразумеваю имя класса, включая имя пакета и модуля.) Я знаю о x.__class__.__name__, но есть ли простой способ получить пакет и модуль?
07 янв '10 в 11:50
1 ответ

Документ модели данных Python: несвязанный пользовательский объект метода и объект метода класса

В справочной модели данных автор приложил немало усилий, объясняя, как создаются и управляются пользовательские методы:(см. http://docs.python.org/reference/datamodel.html и roll вниз) Пользовательские объекты методов могут быть созданы при получени…
01 фев '12 в 04:47
1 ответ

От RangeIndex до DatetimeIndex

Я анализирую временные ряды действия (исторические с 2000 по 2018 год). Я хочу иметь возможность лучше анализировать свои временные ряды (например, ежемесячно, ежеквартально), помещая все данные datetime в DatetimeIndex. Как мне это сделать? Являетс…
03 июн '18 в 14:55
2 ответа

Переменная Шредингера: ячейка __class__ волшебным образом появляется, если вы проверяете ее наличие?

Здесь есть сюрприз: >>> class B: ... print(locals()) ... def foo(self): ... print(locals()) ... print(__class__ in locals().values()) ... {'__module__': '__main__', '__qualname__': 'B'} >>> B().foo() {'__class__': <class '__main…
03 май '16 в 00:12
2 ответа

isinstance(тип, объект) = правда, почему?

Я понимаю, что объект является экземпляром типа, а тип наследуется от объекта. Таким образом, следующие отношения имеют смысл: isinstance(object, type) # returns True, ok issubclass(type, object) # returns True, ok Я также знаю, что isinstance (a, b…
24 май '18 в 03:03
12 ответов

Получение имени класса экземпляра?

Как узнать имя класса, который создал экземпляр объекта в Python, если функция, из которой я делаю это, является базовым классом, из которого был получен класс экземпляра? Я думал, что модуль проверки мог бы помочь мне здесь, но, похоже, он не дает …
3 ответа

python __getattr__ help

Читая книгу, я наткнулся на этот код... # module person.py class Person: def __init__(self, name, job=None, pay=0): self.name = name self.job = job self.pay = pay def lastName(self): return self.name.split()[-1] def giveRaise(self, percent): self.pa…
16 янв '11 в 15:26
1 ответ

Почему не все имена в dir(x) действительны для доступа к атрибутам?

Зачем кодеру вставлять вещи в __dict__ что нельзя использовать для доступа к атрибутам? Например, в моем экземпляре Plone, dir(portal) включает в себя index_html, но portal.index_html поднимает AttributeError. Это также верно для __class__ атрибут P…
27 янв '09 в 20:30
4 ответа

Цикл по методам объекта Python / IronPython

Как правильно перебрать методы объекта Python и вызвать их? Учитывая объект: class SomeTest(): def something1(self): print "something 1" def something2(self): print "something 2"
4 ответа

Почему в Python нет метода "__req__" (отраженного равенства)?

У меня есть маленький вспомогательный класс: class AnyOf(object): def __init__(self, *args): self.elements = args def __eq__(self, other): return other in self.elements Это позволяет мне делать сладкую магию, как: >>> arr = np.array([1,2,3,…
3 ответа

Как бы вы определили, где определены каждое свойство и метод класса Python?

Учитывая экземпляр некоторого класса в Python, было бы полезно определить, какая строка исходного кода определяет каждый метод и свойство (например, для реализации 1). Например, дан модуль ab.py class A(object): z = 1 q = 2 def y(self): pass def x(s…
27 янв '09 в 19:37
15 ответов

Запретить создание новых атрибутов за пределами __init__

Я хочу иметь возможность создать класс (в Python), который когда-то инициализируется с __init__, не принимает новые атрибуты, но принимает модификации существующих атрибутов. Есть несколько способов взлома, которые я вижу, чтобы сделать это, наприме…
30 авг '10 в 19:20
1 ответ

Модель данных Python: снова перепутан с методом классов

Говорят, что: Когда он даст объект метода класса, он преобразуется в связанный пользовательский объект метода, чьи атрибуты im_class и im_self являются C. в ссылке И я сделал EX. >>> class C(object) : ... @classmethod ... def cm(cls) : prin…
02 фев '12 в 04:32