know what sorts of objects are implementing the methods they call encapsulation means packaging in python--that ishiding implementation details behind an object' interface it does not mean enforced privacythough that can be implemented with codeas we'll see in encapsulation is available and useful in python nonethelessit allows the implementation of an object' interface to be changed without impacting the users of that object polymorphism means interfacesnot call signatures some oop languages also define polymorphism to mean overloading functions based on the type signatures of their arguments--the number passed and/or their types because there are no type declarations in pythonthis concept doesn' really applyas we've seenpolymorphism in python is based on object interfacesnot types if you're pining for your +daysyou can try to overload methods by their argument listslike thisclass cdef meth(selfx)def meth(selfxyz)this code will runbut because the def simply assigns an object to name in the class' scopethe last definition of the method function is the only one that will be retained put another wayit' just as if you say and then will be hencethere can be only one definition of method name if they are truly requiredyou can always code type-based selections using the typetesting ideas we met in and or the argument list tools introduced in class cdef meth(self*args)if len(args= elif type(arg[ ]=intbranch on number arguments branch on argument types (or isinstance()you normally shouldn' do thisthough--it' not the python way as described in you should write your code to expect only an object interfacenot specific data type that wayit will be useful for broader category of types and applicationsboth now and in the futureclass cdef meth(selfx) operation( designing with classes assume does the right thing