from functools import reduce
class CustomDict(dict):
def __getitem__(self, key):
return reduce(lambda acc, x: acc.__getitem__(x), key.split('.'), super())
data = CustomDict({'a': {'b': {'c': 1}}})
print(data['a.b.c'])
for tv in tv_list:
print('Производитель: {tv.manufacturer.name}, марка: {tv.name}, разрешение: {tv.resolution} и т.д.'.format(tv=tv)
world = {
'player': {
'items': [],
'is_dead': False,
},
# other game info
}
behind(world)
road(world)
...
class Foo(object):
def __getattribute__(self, name):
attr = super(Foo, self).__getattribute__(name)
if name in ('abc', 'bar'):
call_some_function()
return attr
class Foo(object):
def __getattribute__(self, name):
attr = super(Foo, self).__getattribute__(name)
if callable(attr):
call_some_functuon()
return attr
class Foo(object):
def __getattribute__(self, name):
attr = super(Foo, self).__getattribute__(name)
return some_decorator(attr) if callable(attr) else attr
keys = a.values()
assert not len(keys) % 2, 'только для массивов четной длины'
print([[keys[i], keys[i+1]] for i in range(0, len(keys), 2)])
def success_test(self):
a = ABC()
a.foo = 10
self.assertEqual(a.foo, 10)
with open('test.txt', 'r') as f:
print(sum(len(line.split()) for line in f.readlines()))
with open('test.txt', 'r') as f:
print(sum(map(len, map(str.split, f.readlines()))))
# печатаем уникальные слова(ваш вариант с ошибкой)
with open('test.txt', 'r') as f:
for word in set(word.strip() for word in f.read().split()):
print(word)
# выводим слова и их количество(то, что вы подразумавали)
from collections import defaultdict # словарь, для которого можно указать значения по умолчанию
with open('test.txt', 'r') as f:
words = defaultdict(int) # функция, вызывающаяся для каждого нового ключа, int() возвращает 0
for word in (word.strip() for word in f.read().split()):
words[word] += 1 # можно не проверять на наличие ключа, а сразу инкрементировать, т.к. значение по умолчанию - 0
for word, num in words.items():
print(word, '\t', num)
# db.py:
from pony.orm import *
db = Database("sqlite", ":memory:")
# order.py:
from datatime import time
from pony.orm import *
from db import db
class Order(db.Entity):
id = PrimaryKey(int, auto=True)
date = Required(date)
trnumber = Optional(str)
# people.py:
from pony.orm import *
from db import db
class People(db.Entity):
id = PrimaryKey(int, auto=True)
name = Required(str)
lastname = Required(str)
email = Required(str)
telephone = Optional(str)
# main.py
from db import db
from people import People # обязательно импортировать все модели, чтобы они определились до генерации маппинга
from order import Order
def main():
db.generate_mapping(create_tables=True)