Категорії
Електронні книги
-
Бізнес та економіка
- Біткойн
- Ділова жінка
- Коучинг
- Контроль
- Електронний бізнес
- Економіка
- Фінанси
- Фондова біржа та інвестиції
- Особисті компетенції
- Комп'ютер в офісі
- Комунікація та переговори
- Малий бізнес
- Маркетинг
- Мотивація
- Мультимедійне навчання
- Нерухомість
- Переконання та НЛП
- Податки
- Соціальна політика
- Порадники
- Презентації
- Лідерство
- Зв'язки з громадськістю
- Звіти, аналізи
- Секрет
- Соціальні засоби комунікації
- Продаж
- Стартап
- Ваша кар'єра
- Управління
- Управління проектами
- Людські ресурси (HR)
-
Для дітей
-
Для молоді
-
Освіта
-
Енциклопедії, словники
-
Електронна преса
- Architektura i wnętrza
- Biznes i Ekonomia
- Будинок та сад
- Електронний бізнес
- Фінанси
- Особисті фінанси
- Бізнес
- Фотографія
- Інформатика
- Відділ кадрів та оплата праці
- Комп'ютери, Excel
- Бухгалтерія
- Культура та література
- Наукові та академічні
- Охорона навколишнього середовища
- Впливові
- Освіта
- Податки
- Подорожі
- Психологія
- Релігія
- Сільське господарство
- Ринок книг і преси
- Транспорт та спедиція
- Здоров'я та краса
-
Історія
-
Інформатика
- Офісні застосунки
- Бази даних
- Біоінформатика
- Бізнес ІТ
- CAD/CAM
- Digital Lifestyle
- DTP
- Електроніка
- Цифрова фотографія
- Комп'ютерна графіка
- Ігри
- Хакування
- Hardware
- IT w ekonomii
- Наукові пакети
- Шкільні підручники
- Основи комп'ютера
- Програмування
- Мобільне програмування
- Інтернет-сервери
- Комп'ютерні мережі
- Стартап
- Операційні системи
- Штучний інтелект
- Технологія для дітей
- Вебмайстерність
-
Інше
-
Іноземні мови
-
Культура та мистецтво
-
Шкільні читанки
-
Література
- Антології
- Балада
- Біографії та автобіографії
- Для дорослих
- Драми
- Журнали, щоденники, листи
- Епос, епопея
- Нарис
- Наукова фантастика та фантастика
- Фельєтони
- Художня література
- Гумор, сатира
- Інше
- Класичний
- Кримінальний роман
- Нехудожня література
- Художня література
- Mity i legendy
- Лауреати Нобелівської премії
- Новели
- Побутовий роман
- Okultyzm i magia
- Оповідання
- Спогади
- Подорожі
- Оповідна поезія
- Поезія
- Політика
- Науково-популярна
- Роман
- Історичний роман
- Проза
- Пригодницька
- Журналістика
- Роман-репортаж
- Romans i literatura obyczajowa
- Сенсація
- Трилер, жах
- Інтерв'ю та спогади
-
Природничі науки
-
Соціальні науки
-
Шкільні підручники
-
Науково-популярна та академічна
- Археологія
- Bibliotekoznawstwo
- Кінознавство / Теорія кіно
- Філологія
- Польська філологія
- Філософія
- Finanse i bankowość
- Географія
- Економіка
- Торгівля. Світова економіка
- Історія та археологія
- Історія мистецтва і архітектури
- Культурологія
- Мовознавство
- літературні студії
- Логістика
- Математика
- Ліки
- Гуманітарні науки
- Педагогіка
- Навчальні засоби
- Науково-популярна
- Інше
- Психологія
- Соціологія
- Театральні студії
- Богослов’я
- Економічні теорії та науки
- Transport i spedycja
- Фізичне виховання
- Zarządzanie i marketing
-
Порадники
-
Ігрові посібники
-
Професійні та спеціальні порадники
-
Юридична
- Безпека життєдіяльності
- Історія
- Дорожній кодекс. Водійські права
- Юридичні науки
- Охорона здоров'я
- Загальне, компендіум
- Академічні підручники
- Інше
- Закон про будівництво і житло
- Цивільне право
- Фінансове право
- Господарське право
- Господарське та комерційне право
- Кримінальний закон
- Кримінальне право. Кримінальні злочини. Кримінологія
- Міжнародне право
- Міжнародне та іноземне право
- Закон про охорону здоров'я
- Закон про освіту
- Податкове право
- Трудове право та законодавство про соціальне забезпечення
- Громадське, конституційне та адміністративне право
- Кодекс про шлюб і сім'ю
- Аграрне право
- Соціальне право, трудове право
- Законодавство Євросоюзу
- Промисловість
- Сільське господарство та захист навколишнього середовища
- Словники та енциклопедії
- Державні закупівлі
- Управління
-
Путівники та подорожі
- Африка
- Альбоми
- Південна Америка
- Центральна та Північна Америка
- Австралія, Нова Зеландія, Океанія
- Австрія
- Азії
- Балкани
- Близький Схід
- Болгарія
- Китай
- Хорватія
- Чеська Республіка
- Данія
- Єгипет
- Естонія
- Європа
- Франція
- Гори
- Греція
- Іспанія
- Нідерланди
- Ісландія
- Литва
- Латвія
- Mapy, Plany miast, Atlasy
- Мініпутівники
- Німеччина
- Норвегія
- Активні подорожі
- Польща
- Португалія
- Інше
- Росія
- Румунія
- Словаччина
- Словенія
- Швейцарія
- Швеція
- Світ
- Туреччина
- Україна
- Угорщина
- Велика Британія
- Італія
-
Психологія
- Філософія життя
- Kompetencje psychospołeczne
- Міжособистісне спілкування
- Mindfulness
- Загальне
- Переконання та НЛП
- Академічна психологія
- Психологія душі та розуму
- Психологія праці
- Relacje i związki
- Батьківство та дитяча психологія
- Вирішення проблем
- Інтелектуальний розвиток
- Секрет
- Сексуальність
- Спокушання
- Зовнішній вигляд та імідж
- Філософія життя
-
Релігія
-
Спорт, фітнес, дієти
-
Техніка і механіка
Аудіокниги
-
Бізнес та економіка
- Біткойн
- Ділова жінка
- Коучинг
- Контроль
- Електронний бізнес
- Економіка
- Фінанси
- Фондова біржа та інвестиції
- Особисті компетенції
- Комунікація та переговори
- Малий бізнес
- Маркетинг
- Мотивація
- Нерухомість
- Переконання та НЛП
- Податки
- Порадники
- Презентації
- Лідерство
- Зв'язки з громадськістю
- Секрет
- Соціальні засоби комунікації
- Продаж
- Стартап
- Ваша кар'єра
- Управління
- Управління проектами
- Людські ресурси (HR)
-
Для дітей
-
Для молоді
-
Освіта
-
Енциклопедії, словники
-
Історія
-
Інформатика
-
Інше
-
Іноземні мови
-
Культура та мистецтво
-
Шкільні читанки
-
Література
- Антології
- Балада
- Біографії та автобіографії
- Для дорослих
- Драми
- Журнали, щоденники, листи
- Епос, епопея
- Нарис
- Наукова фантастика та фантастика
- Фельєтони
- Художня література
- Гумор, сатира
- Інше
- Класичний
- Кримінальний роман
- Нехудожня література
- Художня література
- Mity i legendy
- Лауреати Нобелівської премії
- Новели
- Побутовий роман
- Okultyzm i magia
- Оповідання
- Спогади
- Подорожі
- Поезія
- Політика
- Науково-популярна
- Роман
- Історичний роман
- Проза
- Пригодницька
- Журналістика
- Роман-репортаж
- Romans i literatura obyczajowa
- Сенсація
- Трилер, жах
- Інтерв'ю та спогади
-
Природничі науки
-
Соціальні науки
-
Науково-популярна та академічна
-
Порадники
-
Професійні та спеціальні порадники
-
Юридична
-
Путівники та подорожі
-
Психологія
- Філософія життя
- Міжособистісне спілкування
- Mindfulness
- Загальне
- Переконання та НЛП
- Академічна психологія
- Психологія душі та розуму
- Психологія праці
- Relacje i związki
- Батьківство та дитяча психологія
- Вирішення проблем
- Інтелектуальний розвиток
- Секрет
- Сексуальність
- Спокушання
- Зовнішній вигляд та імідж
- Філософія життя
-
Релігія
-
Спорт, фітнес, дієти
-
Техніка і механіка
Відеокурси
-
Бази даних
-
Big Data
-
Biznes, ekonomia i marketing
-
Кібербезпека
-
Data Science
-
DevOps
-
Для дітей
-
Електроніка
-
Графіка / Відео / CAX
-
Ігри
-
Microsoft Office
-
Інструменти розробки
-
Програмування
-
Особистісний розвиток
-
Комп'ютерні мережі
-
Операційні системи
-
Тестування програмного забезпечення
-
Мобільні пристрої
-
UX/UI
-
Веброзробка, Web development
-
Управління
Подкасти
- Електронні книги
- Програмування
- Python
- Mastering Object-oriented Python. If you want to master object-oriented Python programming this book is a must-have. With 750 code samples and a relaxed tutorial, it’s a seamless route to programming Python
Деталі електронної книги
Увійти, Якщо вас цікавить зміст видання.
Mastering Object-oriented Python. If you want to master object-oriented Python programming this book is a must-have. With 750 code samples and a relaxed tutorial, it’s a seamless route to programming Python
Eлектронна книга
- Mastering Object-oriented Python
- Table of Contents
- Mastering Object-oriented Python
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Support files, eBooks, discount offers and more
- Why Subscribe?
- Free Access for Packt account holders
- Support files, eBooks, discount offers and more
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code for this book
- Errata
- Piracy
- Questions
- Some Preliminaries
- About casino Blackjack
- Playing the game
- Blackjack player strategies
- Object design for simulating Blackjack
- Performance the timeit module
- Testing unittest and doctest
- Unit testing and technology spikes
- Docstrings RST markup and documentation tools
- The IDE question
- About special method names
- Summary
- About casino Blackjack
- 1. Pythonic Classes via Special Methods
- Pythonic Classes via Special Methods
- 1. The __init__() Method
- The implicit superclass object
- The base class object __init__() method
- Implementing __init__() in a superclass
- Using __init__() to create manifest constants
- Leveraging __init__() via a factory function
- Faulty factory design and the vague else clause
- Simplicity and consistency using elif sequences
- Simplicity using mapping and class objects
- Two parallel mappings
- Mapping to a tuple of values
- The partial function solution
- Fluent APIs for factories
- Implementing __init__() in each subclass
- Simple composite objects
- Wrapping a collection class
- Extending a collection class
- More requirements and another design
- Complex composite objects
- Complete composite object initialization
- Stateless objects without __init__()
- Some additional class definitions
- Multi-strategy __init__()
- More complex initialization alternatives
- Initializing static methods
- Yet more __init__() techniques
- Initialization with type validation
- Initialization, encapsulation, and privacy
- Summary
- 2. Integrating Seamlessly with Python Basic Special Methods
- The __repr__() and __str__() methods
- Non collection __str__() and __repr__()
- Collection __str__() and __repr__()
- The __format__() method
- Nested formatting specifications
- Collections and delegating format specifications
- The __hash__() method
- Deciding what to hash
- Inheriting definitions for immutable objects
- Overriding definitions for immutable objects
- Overriding definitions for mutable objects
- Making a frozen hand from a mutable hand
- The __bool__() method
- The __bytes__() method
- The comparison operator methods
- Designing comparisons
- Implementation of comparison for objects of the same class
- Implementation of comparison for objects of mixed classes
- Hard totals, soft totals, and polymorphism
- A mixed class comparison example
- The __del__() method
- The reference count and destruction
- Circular references and garbage collection
- Circular references and the weakref module
- The __del__() and close() methods
- The __new__() method and immutable objects
- The __new__() method and metaclasses
- Metaclass example 1 ordered attributes
- Metaclass example 2 self-reference
- Summary
- The __repr__() and __str__() methods
- 3. Attribute Access, Properties, and Descriptors
- Basic attribute processing
- Attributes and the __init__() method
- Creating properties
- Eagerly computed properties
- Setter and deleter properties
- Using special methods for attribute access
- Creating immutable objects with __slots__
- Creating immutable objects as a tuple subclass
- Eagerly computed attributes
- The __getattribute__() method
- Creating descriptors
- Using a nondata descriptor
- Using a data descriptor
- Summary, design considerations, and trade-offs
- Properties versus attributes
- Designing with descriptors
- Looking forward
- Basic attribute processing
- 4. The ABCs of Consistent Design
- Abstract base classes
- Base classes and polymorphism
- Callables
- Containers and collections
- Numbers
- Some additional abstractions
- The iterator abstraction
- Contexts and context managers
- The abc module
- Summary, design considerations, and trade-offs
- Looking forward
- 5. Using Callables and Contexts
- Designing with ABC callables
- Improving performance
- Using memoization or caching
- Using functools for memoization
- Aiming for simplicity using the callable API
- Complexities and the callable API
- Managing contexts and the with statement
- Using the decimal context
- Other contexts
- Defining the __enter__() and __exit__() methods
- Handling exceptions
- Context manager as a factory
- Cleaning up in a context manager
- Summary
- Callable design considerations and trade-offs
- Context manager design considerations and trade-offs
- Looking forward
- 6. Creating Containers and Collections
- ABCs of collections
- Examples of special methods
- Using the standard library extensions
- The namedtuple() function
- The deque class
- The ChainMap use case
- The OrderedDict collection
- The defaultdict subclass
- The counter collection
- Creating new kinds of collections
- Defining a new kind of sequence
- A statistical list
- Choosing eager versus lazy calculation
- Working with __getitem__(), __setitem__(), __delitem__(), and slices
- Implementing __getitem__(), __setitem__(), and __delitem__()
- Wrapping a list and delegating
- Creating iterators with __iter__()
- Creating a new kind of mapping
- Creating a new kind of set
- Some design rationale
- Defining the Tree class
- Defining the TreeNode class
- Demonstrating the binary tree set
- Summary
- Design considerations and Trade-offs
- Looking forward
- 7. Creating Numbers
- ABCs of numbers
- Deciding which types to use
- The method resolution and the reflected operator concept
- The arithmetic operators special methods
- Creating a numeric class
- Defining FixedPoint initialization
- Defining FixedPoint binary arithmetic operators
- Defining FixedPoint unary arithmetic operators
- Implementing FixedPoint reflected operators
- Implementing FixedPoint comparison operators
- Computing a numeric hash
- Designing more useful rounding
- Implementing other special methods
- Optimization with the in-place operators
- Summary
- Design considerations and trade-offs
- Looking forward
- ABCs of numbers
- 8. Decorators and Mixins Cross-cutting Aspects
- Class and meaning
- Constructing the functions
- Constructing the class
- Some class design principles
- Aspect-oriented programming
- Using built-in decorators
- Using standard library decorators
- Using standard library mixin classes
- Using the context manager mixin class
- Turning off a class feature
- Writing a simple function decorator
- Creating separate loggers
- Parameterizing a decorator
- Creating a method function decorator
- Creating a class decorator
- Adding method functions to a class
- Using decorators for security
- Summary
- Design considerations and trade-offs
- Looking forward
- Class and meaning
- 2. Persistence and Serialization
- Persistence and Serialization
- 9. Serializing and Saving JSON, YAML, Pickle, CSV, and XML
- Understanding persistence, class, state, and representation
- Common Python terminologies
- Filesystem and network considerations
- Defining classes to support persistence
- Rendering a blog and posts
- Dumping and loading with JSON
- Supporting JSON in our classes
- Customizing JSON encoding
- Customizing JSON decoding
- The security and the eval() issue
- Refactoring the encode function
- Standardizing the date string
- Writing JSON to a file
- Dumping and loading with YAML
- Formatting YAML data on a file
- Extending the YAML representation
- Security and safe loading
- Dumping and loading with pickle
- Designing a class for reliable pickle processing
- Security and the global issue
- Dumping and loading with CSV
- Dumping simple sequences to CSV
- Loading simple sequences from CSV
- Handling containers and complex classes
- Dumping and loading multiple row types in a CSV file
- Filtering CSV rows with an iterator
- Dumping and loading joined rows in a CSV file
- Dumping and loading with XML
- Dumping objects using string templates
- Dumping objects with xml.etree.ElementTree
- Loading XML documents
- Summary
- Design considerations and trade-offs
- Schema evolution
- Looking forward
- Understanding persistence, class, state, and representation
- 10. Storing and Retrieving Objects via Shelve
- Analyzing persistent object use cases
- The ACID properties
- Creating a shelf
- Designing shelvable objects
- Designing keys for our objects
- Generating surrogate keys for objects
- Designing a class with a simple key
- Designing classes for containers or collections
- Referring to objects via foreign keys
- Designing CRUD operations for complex objects
- Searching, scanning, and querying
- Designing an access layer for shelve
- Writing a demonstration script
- Creating indexes to improve efficiency
- Creating top-level indices
- Adding yet more index maintenance
- The writeback alternative to index updates
- Schema evolution
- Summary
- Design considerations and trade-offs
- Application software layers
- Looking forward
- Analyzing persistent object use cases
- 11. Storing and Retrieving Objects via SQLite
- SQL databases, persistence, and objects
- The SQL data model rows and tables
- CRUD processing via SQL DML statements
- Querying rows with the SQL SELECT statement
- SQL transactions and the ACID properties
- Designing primary and foreign database keys
- Processing application data with SQL
- Implementing class-like processing in pure SQL
- Mapping Python objects to SQLite BLOB columns
- Mapping Python objects to database rows manually
- Designing an access layer for SQLite
- Implementing container relationships
- Improving performance with indices
- Adding an ORM layer
- Designing ORM-friendly classes
- Building the schema with the ORM layer
- Manipulating objects with the ORM layer
- Querying post objects given a tag string
- Improving performance with indices
- Schema evolution
- Summary
- Design considerations and trade-offs
- Mapping alternatives
- Keys and key designs
- Application software layers
- Looking forward
- SQL databases, persistence, and objects
- 12. Transmitting and Sharing Objects
- Class, state, and representation
- Using HTTP and REST to transmit objects
- Implementing CRUD operations via REST
- Implementing non-CRUD operations
- The REST protocol and ACID
- Choosing a representation JSON, XML, or YAML
- Implementing a REST server WSGI and mod_wsgi
- Creating a simple REST application and server
- Implementing a REST client
- Demonstrating and unit testing the RESTful services
- Using Callable classes for WSGI applications
- Designing RESTful object identifiers
- Multiple layers of REST services
- Creating the roulette server
- Creating the roulette client
- Creating a secure REST service
- The WSGI Authentication application
- Implementing REST with a web application framework
- Using a message queue to transmit objects
- Defining processes
- Building queues and supplying data
- Summary
- Design considerations and trade-offs
- Schema evolution
- Application software layers
- Looking forward
- 13. Configuration Files and Persistence
- Configuration file use cases
- Representation, persistence, state, and usability
- Application configuration design patterns
- Configuring via object construction
- Implementing a configuration hierarchy
- Storing the configuration in the INI files
- Handling more literals via the eval() variants
- Storing the configuration in PY files
- Configuration via class definitions
- Configuration via SimpleNamespace
- Using Python with exec() for the configuration
- Why is exec() a nonproblem?
- Using ChainMap for defaults and overrides
- Storing the configuration in JSON or YAML files
- Using flattened JSON configurations
- Loading a YAML configuration
- Storing the configuration in property files
- Parsing a properties file
- Using a properties file
- Storing the configuration in XML files PLIST and others
- Customized XML configuration files
- Summary
- Design considerations and trade-offs
- Creating a shared configuration
- Schema evolution
- Looking Forward
- 3. Testing, Debugging, Deploying, and Maintaining
- Testing, Debugging, Deploying, and Maintaining
- 14. The Logging and Warning Modules
- Creating a basic log
- Creating a shared class-level logger
- Configuring the loggers
- Starting up and shutting down the logging system
- Naming the loggers
- Extending the logger levels
- Defining handlers for multiple destinations
- Managing the propagation rules
- Configuration gotcha
- Specializing logging for control, debug, audit, and security
- Creating a debugging log
- Creating audit and security logs
- Using the warnings module
- Showing API changes with a warning
- Showing configuration problems with a warning
- Showing possible software problems with a warning
- Advanced logging the last few messages and network destinations
- Building an automatic tail buffer
- Sending logging messages to a remote process
- Preventing queue overrun
- Summary
- Design considerations and trade-offs
- Looking forward
- Creating a basic log
- 15. Designing for Testability
- Defining and isolating units for testing
- Minimizing the dependencies
- Creating simple unit tests
- Creating a test suite
- Including edge and corner cases
- Mocking dependencies for testing
- Using more mocks to test more behaviors
- Using doctest to define test cases
- Combining doctest and unittest
- Creating a more complete test package
- Using setup and teardown
- Using setup and teardown with OS resources
- Using setup and teardown with databases
- The TestCase class hierarchy
- Using externally defined expected results
- Automated integration or performance testing
- Summary
- Design considerations and trade-offs
- Looking forward
- Defining and isolating units for testing
- 16. Coping With the Command Line
- The OS interface and the command line
- Arguments and options
- Parsing the command line with argparse
- A simple on/off option
- An option with an argument
- Positional arguments
- All other arguments
- --version display and exit
- --help display and exit
- Integrating command-line options and environment variables
- Providing more configurable defaults
- Overriding configuration file settings with environment variables
- Overriding environment variables with the configuration files
- Making the configuration aware of the None values
- Customizing the help output
- Creating a top-level main() function
- Ensuring DRY for the configuration
- Managing nested configuration contexts
- Programming In The Large
- Designing command classes
- Adding the analysis command subclass
- Adding and packaging more features into an application
- Designing a higher-level composite command
- Additional composite command design patterns
- Integrating with other applications
- Summary
- Design considerations and trade-offs
- Looking forward
- The OS interface and the command line
- 17. The Module and Package Design
- Designing a module
- Some module design patterns
- Module versus class
- The expected content of a module
- Whole module versus module items
- Designing a package
- Designing a module-package hybrid
- Designing a package with alternate implementations
- Designing a main script and the __main__ module
- Creating an executable script file
- Creating a __main__ module
- Programming in the large
- Designing long-running applications
- Organizing code into src, bin, and test
- Installing Python modules
- Summary
- Design considerations and trade-offs
- Looking forward
- Designing a module
- 18. Quality and Documentation
- Writing docstrings for the help() function
- Using pydoc for documentation
- Better output via the RST markup
- Blocks of text
- The RST inline markup
- RST directives
- Learning RST
- Writing effective docstrings
- Writing file-level docstrings, including modules and packages
- Writing API details in RST markup
- Writing class and method function docstrings
- Writing function docstrings
- More sophisticated markup techniques
- Using Sphinx to produce the documentation
- Using the Sphinx quickstart
- Writing the Sphinx documentation
- Filling in the 4+1 views for documentation
- Writing the implementation document
- Creating the Sphinx cross-references
- Refactoring Sphinx files into directories
- Writing the documentation
- Literate programming
- Use cases for literate programming
- Working with a literate programming tool
- Summary
- Design considerations and trade-offs
- Index
- Назва: Mastering Object-oriented Python. If you want to master object-oriented Python programming this book is a must-have. With 750 code samples and a relaxed tutorial, it’s a seamless route to programming Python
- Автор: Steven F. Lott
- Оригінальна назва: Mastering Object-oriented Python. If you want to master object-oriented Python programming this book is a must-have. With 750 code samples and a relaxed tutorial, it’s a seamless route to programming Python.
- ISBN: 9781783280988, 9781783280988
- Дата видання: 2014-04-22
- Формат: Eлектронна книга
- Ідентифікатор видання: e_3bln
- Видавець: Packt Publishing