GithubHelp home page GithubHelp logo

pythonprog's Introduction

Python Programming Language - The Code

This repository contains the code written for the LiveLessons: Python Programming Language, by David Beazley, published by Addison-Wesley Professional, ISBN: 0134217314. August, 2016.

You can purchase the companion video on Safari.

Sample lessons can be viewed on InformIT.

Overview

The "Python Programming Language" video consists 6.5 hours of live-coded examples, primarily aimed at intermediate level programmers who want to take their Python skills to the next level. The goal is to cover all of the major features of the language ranging from basic data manipulation to more advanced topics such as decorators, metaclasses, and coroutines.

Organization

The organization of this repository matches that of the video. The code/ directory contains the code. This directory is organized by lesson number and section (if applicable). Many of the exercises involving reading data files that can be found in the Data/ folder. For things to work correctly, you should change to the corresponding directory and run the code from there. Otherwise, you might need to fiddle with file paths.

High Level Lesson Outline

  • Lesson 1: Working Environment.
  • Lesson 2: Program Structure and Execution Model
  • Lesson 3: Text Processing and Files
  • Lesson 4: Functions and Error Handling
  • Lesson 5: Data Structures and Data Manipulation
  • Lesson 6: Library Functions and Import
  • Lesson 7: Classes and Objects
  • Lesson 8: Inheritance
  • Lesson 9: Python Magic Methods (a.k.a., Speaking Python)
  • Lesson 10: Encapsulation (Owning the Dot)
  • Lesson 11: Higher Order Functions and Closures
  • Lesson 12: Metaprogramming and Decorators
  • Lesson 13: Metaclasses
  • Lesson 14: Iterators and Generators
  • Lesson 15: Coroutines

FAQ

Q: Is the companion video available for free?
A: No. The video is a commercial product sold by Addison-Wesley Professional.

Q: I've found an error, can I submit a bug report?
A: Yes. Please submit errors as a new issue on Github.

Q: Is there a discussion forum where I can ask questions?
A: Yes, Dave there is a Discourse forum at https://forum.dabeaz.com/c/python-programming-language-video

Acknowledgements

Special thanks to Yarko Tymciurak for help in organizing the source code in this repository.

pythonprog's People

Contributors

dabeaz avatar yarko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

pythonprog's Issues

Confusion about QuotedMixin class in section 8.3

Hello, I’ve dabbled in other languages, and now I’m playing with Python. Thank you for your video lessons! They are outstanding.

But I cannot wrap my head around this issue, and I hope somebody can help me regain my sanity. In the section 8.3, you introduce the basic idea behind multiple inheritance with this class QuotedMixin(object)

class TableFormatter(object):
    def __init__(self, outfile=None):
        if outfile == None:
            outfile = sys.stdout
        self.outfile = outfile

    # Serves a design spec for making tables (use inheritance to customize)
    def headings(self, headers):
        raise NotImplementedError

    def row(self, rowdata):
        raise NotImplementedError
. . .
class QuotedMixin(object):
    def row(self, rowdata):
        quoted = [ '"{}"'.format(d) for d in rowdata ]
        super().row(quoted)

My question is how does Python know what super() refers to since this class does not inherit from anything other than the object. So how does Python know to find and override the row method from TableFormatter. Could you enlighten? Much appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.