Everything is an object in Python. Passing an object to a class is no different from passing an integer (as in that example), a string, or anything else. Then b is an object of class Bar whose constructor will be called to initialize b, a`s(Foo()) or Bar()? and what is b.