Вопросы с тегом «magic-methods»


14
Python __call__ специальный метод практический пример
Я знаю, что __call__метод в классе запускается, когда вызывается экземпляр класса. Однако я понятия не имею, когда я смогу использовать этот специальный метод, потому что можно просто создать новый метод и выполнить ту же операцию, что и в __call__методе, и вместо вызова экземпляра вы можете вызвать метод. Я был бы …

7
Почему Python использует «волшебные методы»?
Я недавно играл с Python, и одна вещь, которую я нахожу немного странной, - это широкое использование `` магических методов '', например, чтобы сделать его длину доступной, объект реализует метод def __len__(self), а затем он вызывается, когда ты пишешь len(obj). Мне просто было интересно, почему объекты просто не определяют len(self)метод …

3
Как работает python numpy.where ()?
Я играю numpyи копаюсь в документации, и я наткнулся на некоторую магию. А именно я говорю о numpy.where(): >>> x = np.arange(9.).reshape(3, 3) >>> np.where( x > 5 ) (array([2, 2, 2]), array([0, 1, 2])) Как они внутренне добиваются того, чтобы вы могли передать что-то вроде x > 5метода? Я …

4
Что такое атрибут __dict __.__ dict__ класса Python?
>>> class A(object): pass ... >>> A.__dict__ <dictproxy object at 0x173ef30> >>> A.__dict__.__dict__ Traceback (most recent call last): File "<string>", line 1, in <fragment> AttributeError: 'dictproxy' object has no attribute '__dict__' >>> A.__dict__.copy() {'__dict__': <attribute '__dict__' of 'A' objects> ... } >>> A.__dict__['__dict__'] <attribute '__dict__' of 'A' objects> # What …

2
Метод scala, который я пока не могу понять
Я пытаюсь понять некоторые работы Slick и их требования. Вот это пример: package models case class Bar(id: Option[Int] = None, name: String) object Bars extends Table[Bar]("bar") { def id = column[Int]("id", O.PrimaryKey, O.AutoInc) // This is the primary key column def name = column[String]("name") // Every table needs a * …

8
Магические методы PHP __get и __set
Если я не совсем ошибаюсь, __getи __setметоды должны допускать перегрузки → getи set. Например, следующие операторы должны вызывать __getметод: echo $foo->bar; $var = $foo->bar; И следующие __setметоды должны использовать этот метод: $foo->bar = 'test'; Это не работало в моем коде, и его можно воспроизвести на следующем простом примере: class foo …

4
Делаем определяемый пользователем класс Python сортируемым, хешируемым
Какие методы необходимо переопределить / реализовать при создании сортируемых и / или хешируемых пользовательских классов в Python? Какие подводные камни следует остерегаться? Я ввожу dir({})свой интерпретатор, чтобы получить список методов для встроенных dicts. Из них, я полагаю, мне нужно реализовать какое-то подмножество ['__cmp__', '__eq__', '__ge__', '__gt__', '__hash__', '__le__', '__lt__', '__ne__'] …

3
Как работает магия метода apply () в Scala?
В Scala, если я определяю метод, вызываемый applyв классе или в объекте верхнего уровня, этот метод будет вызываться всякий раз, когда я добавляю пару круглых скобок к экземпляру этого класса и помещаю соответствующие аргументы apply()между ними. Например: class Foo(x: Int) { def apply(y: Int) = { x*x + y*y } …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.