class SomeClass:
attr_dic = {'a': 1, 'b': 2}
print 'Class. type: %s, id: %s' % (type(SomeClass), id(SomeClass.attr_dic))
some_a = SomeClass()
print 'Instance A. type: %s, id: %s' % (type(some_a), id(some_a.attr_dic))
some_b = SomeClass()
print 'Instance B. type: %s, id: %s' % (type(some_b), id(some_b.attr_dic))
Class. type: <type 'classobj'>, id: 2515860
Instance A. type: <type 'instance'>, id: 2515860
Instance B. type: <type 'instance'>, id: 2515860
Route::set('products_list', 'products(/<page>)', array('page' => '[0-9]+'))
->defaults(array(
'controller' => 'products',
'action' => 'index',
));
// products_list - это название роута
// products(/<page>) - совпадает с url http://example.com/products
// или http://expample.com/products/2, номера страницы может не быть, и он взят в (скобки)
Route::set('products_view', 'products/<id>-<url>', array('id' => '[0-9]+', 'url' => '[a-z]+'))
->defaults(array(
'controller' => 'products',
'action' => 'product',
));
// этот роут будет совпадать с url типа http://example.com/products/5-someproduct