GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - jwalsh/advanced-python: Advanced Python programming concepts: internals, metaprogramming, concurrency, design patterns, functional programming, and more. Educational resource with examples and exercises.

BranchesTags
Open more actions menu

Latest commit

 

History

48 Commits
48 Commits

Folders and files

NameName
Last commit message
Last commit date
exercises
exercises
 
 
lambda-bytecode
lambda-bytecode
 
 
performance
performance
 
 
projects
projects
 
 
tests
tests
 
 
.dir-locals.el
.dir-locals.el
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
CLAUDE.md
CLAUDE.md
 
 
Makefile
Makefile
 
 
README.org
README.org
 
 
_.shar
_.shar
 
 
abstract_base_classes.py
abstract_base_classes.py
 
 
advanced_comprehensions.py
advanced_comprehensions.py
 
 
advanced_error_handling.py
advanced_error_handling.py
 
 
advanced_oop_patterns.py
advanced_oop_patterns.py
 
 
advanced_testing.py
advanced_testing.py
 
 
api_development.py
api_development.py
 
 
bytecode-inspector.org
bytecode-inspector.org
 
 
bytecode_inspector.py
bytecode_inspector.py
 
 
clojures-rfc.org
clojures-rfc.org
 
 
closures.py
closures.py
 
 
concurrency_and_parallelism.py
concurrency_and_parallelism.py
 
 
context_managers.py
context_managers.py
 
 
control_flow.py
control_flow.py
 
 
coroutines_async.py
coroutines_async.py
 
 
data.txt
data.txt
 
 
data_processor.cpp
data_processor.cpp
 
 
data_visualization.py
data_visualization.py
 
 
database_integration.py
database_integration.py
 
 
decorators.py
decorators.py
 
 
decorators_with_arguments.py
decorators_with_arguments.py
 
 
descriptors.py
descriptors.py
 
 
dictionaries_and_sets.py
dictionaries_and_sets.py
 
 
domain_modeling.py
domain_modeling.py
 
 
exception_handling.py
exception_handling.py
 
 
ffi.py
ffi.py
 
 
file_handling.py
file_handling.py
 
 
functions.py
functions.py
 
 
functools_module.py
functools_module.py
 
 
generators.py
generators.py
 
 
gui_development.py
gui_development.py
 
 
interpreter-internals.org
interpreter-internals.org
 
 
interpreter_internals.py
interpreter_internals.py
 
 
ipython.org
ipython.org
 
 
itertools_module.py
itertools_module.py
 
 
labels.json
labels.json
 
 
lambda-ast-explorer.org
lambda-ast-explorer.org
 
 
lambda_ast_explorer.py
lambda_ast_explorer.py
 
 
lambda_calculus.org
lambda_calculus.org
 
 
lambda_calculus.py
lambda_calculus.py
 
 
library_development.py
library_development.py
 
 
lists_and_tuples.py
lists_and_tuples.py
 
 
logging.py
logging.py
 
 
metaclasses.py
metaclasses.py
 
 
metaprogramming.py
metaprogramming.py
 
 
modules_and_packages.py
modules_and_packages.py
 
 
namespacing.py
namespacing.py
 
 
networking.py
networking.py
 
 
object_oriented_programming.py
object_oriented_programming.py
 
 
operator_overloading.py
operator_overloading.py
 
 
parsing.py
parsing.py
 
 
performance_optimization.py
performance_optimization.py
 
 
pfds.py
pfds.py
 
 
poetry.lock
poetry.lock
 
 
pyproject.toml
pyproject.toml
 
 
reflective_tower.py
reflective_tower.py
 
 
serialization.py
serialization.py
 
 
sicp.py
sicp.py
 
 
strings.py
strings.py
 
 
variables_and_data_types.py
variables_and_data_types.py
 
 
web_scraping.py
web_scraping.py
 
 

Repository files navigation

Advanced Python Exercises

This repository contains a collection of exercises and examples covering advanced Python concepts and techniques. It is designed to help Python developers enhance their skills and gain a deeper understanding of the language’s advanced features.

Getting Started

make install 
make venv
make new-exercise

Primary Topics

Decorators

  • Introduced in Python 2.4 (2005)
  • Similar concepts: Annotations (Java), Attributes (C#)

Generators

  • Introduced in Python 2.2 (2001)
  • Similar concepts: Iterator (Java), IEnumerable (C#)

Context Managers

  • Introduced in Python 2.5 (2006)
  • Similar concepts: try-with-resources (Java), using (C#)

Metaclasses

  • Introduced in Python 2.2 (2001)
  • Similar concepts: Reflection (Java), Reflection (C#)

Descriptors

  • Introduced in Python 2.2 (2001)
  • Similar concepts: Property (C#), Getter/Setter (Java)

Abstract Base Classes (ABC)

  • Introduced in Python 2.6 (2008)
  • Similar concepts: Interface (Java), Abstract Class (C#)

Coroutines and Asynchronous Programming

  • Coroutines introduced in Python 2.5 (2006)
  • Async/await syntax introduced in Python 3.5 (2015)
  • Similar concepts: Coroutines (C#), CompletableFuture (Java)

Operator Overloading

  • Introduced in Python 1.0 (1994)
  • Similar concepts: Operator Overloading (C++), Operator Overloading (C#)

Advanced List Comprehensions and Generator Expressions

  • List comprehensions introduced in Python 2.0 (2000)
  • Generator expressions introduced in Python 2.4 (2005)
  • Similar concepts: Stream API (Java), LINQ (C#)

Closures

  • Introduced in Python 2.2 (2001)
  • Similar concepts: Lambda Expressions (Java), Anonymous Functions (C#)

Domain Modeling with Classes

  • One-to-Many and Many-to-Many Relationships
  • Modeling Pet, Category, Tag

Decorators with Arguments

  • Passing arguments to decorators
  • Decorators with optional arguments

Itertools Module

  • Important functions in the itertools module
  • Creating efficient iterators and combinatoric generators

Functools Module

  • Useful functions in the functools module
  • Partial function application and reducing functions

Advanced OOP Patterns

  • Singleton, Factory, and Observer patterns
  • Implementing design patterns in Python

Concurrency and Parallelism

  • Threading and multiprocessing modules
  • Concurrent execution and parallel processing

Advanced Error Handling

  • Custom exceptions and exception hierarchies
  • Contextual exception handling and logging

Metaprogramming

  • Code introspection and manipulation
  • Modifying behavior at runtime

Performance Optimization

  • Profiling and benchmarking code
  • Techniques for optimizing Python performance

Advanced Testing

  • Mocking and patching in unit tests
  • Integration testing and test automation

New Language Features

Python 3.8 Features

  • Avoiding naming conflicts

Library Development

  • Creating reusable libraries
  • Packaging and distributing code

Logging

  • Effective logging techniques
  • Configuring and managing log messages

Serialization

  • Serializing and deserializing objects
  • Working with JSON, Pickle, and other formats

Networking

  • Socket programming
  • Client-server communication

Web Scraping

  • Extracting data from websites
  • Using libraries like BeautifulSoup and Scrapy

Data Visualization

  • Creating visual representations of data
  • Using libraries like Matplotlib and Seaborn

GUI Development

  • Building graphical user interfaces
  • Using frameworks like Tkinter and PyQt

Database Integration

  • Interacting with databases
  • Using libraries like SQLAlchemy and Psycopg2

API Development

  • Designing and building APIs
  • Using frameworks like Flask and FastAPI

Foundational Topics

Variables and Data Types

  • Declaring variables
  • Primitive data types (int, float, bool, str)
  • Type conversion

Control Flow

  • if-else statements
  • for and while loops
  • break, continue, and pass statements

Functions

  • Defining and calling functions
  • Parameters and arguments
  • Return values

Lists and Tuples

  • Creating and manipulating lists
  • Accessing elements
  • List methods and functions
  • Tuples and immutability

Dictionaries and Sets

  • Creating and working with dictionaries
  • Accessing and modifying key-value pairs
  • Sets and set operations

Strings

  • String manipulation
  • Formatting strings
  • Common string methods

File Handling

  • Reading from and writing to files
  • File modes and permissions
  • Context managers for file handling

Modules and Packages

  • Importing modules
  • Creating and using packages
  • Namespace and scope

Exception Handling

  • Handling exceptions with try-except
  • Raising exceptions
  • Custom exception classes

Object-Oriented Programming (OOP)

  • Classes and objects
  • Inheritance and polymorphism
  • Encapsulation and data hiding

Instructions

For each topic, complete the exercise in the corresponding Python file. The exercises are designed to help you practice and understand the advanced Python language features.

Resources

Official Documentation

  • Python Documentation
  • Python Tutorial
  • Python Standard Library
  • Python Language Reference

Books

  • Fluent Python by Luciano Ramalho
  • Python Workout by Reuven M. Lerner
  • Practices of the Python Pro by Dane Hillard
  • Effective Python: 90 Specific Ways to Write Better Python by Brett Slatkin
  • Python Cookbook by David Beazley and Brian K. Jones
  • Python Tricks: A Buffet of Awesome Python Features by Dan Bader

Online Tutorials and Courses

  • Real Python
  • Learn Python
  • Codecademy: Learn Python
  • Coursera: Python for Everybody Specialization
  • edX: Introduction to Python - Absolute Beginner
  • Udemy: Complete Python Bootcamp
  • SICP in Python

Blogs and Articles

  • Real Python: Advanced Tutorials
  • Python for Beginners
  • Full Stack Python
  • GeeksforGeeks: Python Programming Language
  • Programiz: Python Programming

Communities and Forums

  • Stack Overflow: Python Questions
  • Reddit: Python Subreddit
  • Reddit: Learn Python Subreddit
  • Python Forum
  • Python.org Community

Podcasts

  • Real Python Podcast
  • Talk Python To Me
  • Python Bytes
  • Podcast.__init__

YouTube Channels

  • Corey Schafer
  • Real Python
  • Programming with Mosh
  • Sentdex
  • Tech With Tim
  • Python Documentation: https://docs.python.org/
  • Real Python: https://realpython.com/

About

Advanced Python programming concepts: internals, metaprogramming, concurrency, design patterns, functional programming, and more. Educational resource with examples and exercises.

Topics

advanced-pythonasync-pythonconcurrencycontext-managerscpythondecoratorsdescriptorsdesign-patternseducationalfunctional-programminggeneratorsmetaclassesmetaprogrammingpoetrypythonpython-internalspython-tutorialpython3testingtype-hints

Resources

Readme
Activity

Stars

11 stars

Watchers

1 watching

Forks

8 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.