Python, i wszystko jest obiektem

Opublikowano:
Tags:  oop programowanie python

Jakiś czas temu wpisałem sobie konsoli pythonowej wypisałem metody instancj inta za pomocą funkcji dir:

>>> dir(1)
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'imag', 'numerator', 'real']

Spodziewałem się tego, choć chyba nie aż takiej ilości atrybutów. Instancja integera ma 64 metody i atrybuty. Parę kolejnych przykładów:

>>> len(dir(int))
64
>>> len(dir(str))
71
>>> len(dir(bool))
64
>>> len(dir(isinstance))
26
>>> len(dir(dir))
26
>>> len(dir(len))
26

I niespodzianka:

>>> len(dir(print))
  File "<stdin>", line 1
    len(dir(print))
            ^
SyntaxError: invalid syntax

W zasadzie nie wiem, czego się spodziewałem.... chociaż, sprawdźmy w paythonie 3.3:

Python 3.3.1 (default, Apr 17 2013, 22:30:32)
[GCC 4.7.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> len(dir(print))
27

Tak, w pythonie 3, print jest już normalną funkcją.

Komentarze

tzf.pyramid_yml 0.2

Opublikowano:
Tags:  pyramid python yaml

Plug-in tzf.pyramid_yml jest paczką, która umożliwia dołączenie dziedziczonej i rozszerzalnej konfiguracji aplikacji napisanej w Pyramidzie. Dzisiaj wypuściłem też wersję 0.2.

Paczka umożliwia zdefiniowanie konfiguracji głównej, w pliku config.yml i konfiguracji nadpisujących niektóre tylko elementy, ze względu na środowisko, w którym zostaje uruchomiona.

Czytaj więcej…

Komentarze

Kurczak po baskijsku

Opublikowano:
Tags:  chorizo kuchnia kurczak piekarnik przepis

Gotowanie to całkiem niezła zabawa. Raz na jakiś czas coś sobie z Anią gotujemy/pieczemy na obiad, wybierając albo z książki Jamiego, albo po przepisach w internecie. Tym razem był to znaleziony w internecie Kurczak po Baskijsku.

Czytaj więcej…

Komentarze

Formatowanie daty dla RSS/Atom

Opublikowano:
Tags:  date python rfc3339 strefa czasowa

Podczas importowania moich postów ze starego bloga do Nikoli, zastanawiałem się nad wygenerowaniem pliku atom i zaimportowaniem go do Nikoli używając jednego z jej importerów. Ostatecznie wygenerowałem same pliki z postami, ale po drodze dowiedziałem się, jak sformatować obiekt DateTime zgodnie z normą rfc3339 (która jest wymagana przez protokół Atom i RSS)

Czytaj więcej…

Komentarze

Witaj, Nikola

Opublikowano:
Tags:  blog nikola python

To już chyba był najwyższy czas, by zrobić coś ze swoim blogiem. Skoro od jakiegoś czasu nie dotykam już php, pomyślałem, że stworzę coś w pythonie. Najlepiej w pyramidzie, skoro pracuję w nim na co dzień. Ale nie bardzo miałem ochotę implementować wszystko od podstaw.

Czytaj więcej…

Komentarze

git na kolorowo

Opublikowano:
Tags:  git

Domyślne usawienia kolorów w konsolowym gicie, nie są zbyt wyszukane. Wszystko jest takie same, przeważnie białe. Aby temu zaradzić, można ustawić te oto wartości:

Czytaj więcej…

Komentarze

Numerowanie elementów DOM przy pomocy CSS

Opublikowano:
Tags:  css

W CSS2 istnieje prosty sposób, na stworzenie listy numerowanej, bez użycia znacznika list. Sposób ten pozwala również rozszerzyć same listy.

Czytaj więcej…

Komentarze

Listowanie metod modułu w pythonie

Opublikowano:
Tags:  howto list python

Aktualnie badam wydajność trzech bibliotek łączących do bazy danych w połączeniu z sqlalchemy. Są to mysql-connector, MySQLdb oraz oursql. Po przygotowaniu podstaw, zacząłem się zastanawiać, w jaki sposób dodać kolejne testy i nie przejmować się modyfikacją podstawy testów.

Czytaj więcej…

Komentarze

Wirtualne środowisko uruchomieniowe Pythona

Opublikowano:
Tags:  python virtualenv

Praca programisty wymaga niekiedy testowania nowych bibliotek i rozwiązań. Niekiedy instalujemy biblioteki do testów zapominając o nich, co może spowodować potem śmietnik w bibliotekach systemowych Pythona. Rozwiązaniem, by utrzymać porządek, jest wirtualne środowisko uruchomieniowe, virtualenv, a znacznym ułatwieniem, virtualenvwrapper.

Czytaj więcej…

Komentarze

Spaghetti z sosem pomidorowo-imbirowym

Opublikowano:
Tags:  cynamon imbir kuchnia przepis sos spaghetti

Spaghetti,a przynajmniej sos zacząłem przygotowywać jak tylko sytuacja (studia) zmusiły mnie do rozpoczęcia gotowania. Z czasem odszedłem od sosów w torebkach, potem od sosów słoikach. Teraz spaghetti z sosem pomidorowo-imbiowym jest moją specjalnością.

Czytaj więcej…

Komentarze