питон-маратон

Днес приключихме летния семестър на Питона. След четири дена гърч, най-накрая мога да седна да си почина малко. Предвид, че още от уебтеха, Manowar-а, джулая и другия концерт тичам по задачи най-накрая ми се отдаде възможност да си разпусна. И да излея малко размисли за курса по Python… Continue reading

Себичен питон

Метакласовете в Python са много яко нещо. Макар все още да не ми се е наложило да напиша дори един такъв за работата си, са много полезен източник на забавления. Сега ще ви покажа как с малко остроумие може да дефинирате класове по следния интересен начин:

class Person(object):
    __metaclass__ = selfless
    def __init__(name, age):
        self.name = name
        self.age = age

    def __repr__():
        return "Person(%s, %d)" % (repr(self.name), self.age)

    def sayHi():
        print "Hello, I’m %s and I’m %d years old" % (self.name, self.age)

    def rename(newName):
        self.name = newName

Интересното? Въобще не ви се налага да пишете self пред имената на методите.

Continue reading

Динамичен питон

След като много хора от курса проявиха интерес колко точно динамичен е Python, реших да съставя малко примерче как „динамично“ (т.е. по време на изпълнение) може да си конструираме изцяло нов клас. Наслаждавайте се!

Continue reading

fizzbuzz.py

Ето как бих решил FizzBuzz проблема, в оригиналния му вариант, където дори принтираме, вместо да връщаме речник:

for n in range(1, 101):
    if n % 3 == 0 and n % 5 == 0:
        print ‘FizzBuzz’
    elif n % 3 == 0:
        print ‘Fizz’
    elif n % 5 == 0:
        print ‘Buzz’
    else:
        print n

Просто, нали? Но да мотивирам това решение:

Continue reading

Python @ FMI

От известно време не съм писал – разходката до Стокхолм бе бая тегава, особено след изпуснатия полет и преспиването във Варшава. А като се върнах бях залят от задачи, една от които бе курса по Python във ФМИ. И тъй като днес е „юбилейната“ четвърта лекция (сиреч две седмици), викам да драсна няколко реда по въпроса. Continue reading