Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Introduction to Python Programming/Python Programming - Class and Objects

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

6. Classes and Objects Python uses object orientation since its inception owing to which fact creating classes, using classes and objects is absolutely easy. 6.1. Creating classes The class statement creates a new class definition. The user provided name for the class follows the keyword class followed by a colon as follows: class myclass: ‘The documentation of the class can be added here’ Class objects Class methods class myclass: 'This docstring provides for the details of the class defined' count=0 def __init__(self,name,paycheck): self.name=name self.paycheck=paycheck myclass.count+=1 def displayworkerCount(self): print "Total no of worker %d" %myclass.count def displayworkerName(self): print "Name of the user",self.name,"'s salary", self.paycheck >>> worker1=myclass("Nobody",15000) >>> worker2=myclass("SNGET", 10000) >>> worker3=myclass("Somebody", 20000) >>> worker4=myclass("Everybody",25000) >>> worker1.count 4 >>> worker1.displayworkerCount() Total no of worker 4 >>> worker1.displayworkerName() Name of the user Nobody 's salary 15000 >>> print myclass.__doc__ This docstring provides for the details of the class defined >>> The end user can check if the defined class has a particular method or object or instance defined within the class using the hasattr object. >>> worker1 <__main__.myclass instance at 0x017D5990> >>> worker1.name 'Nobody' >>> worker1.paycheck 15000 >>> hasattr(worker1,'age') False >>> hasattr(worker1,'displayworkerCount') True The end user can add, modify, set, or delete the attributes of classes and objects at any time using the following methods. >>> worker5=myclass("","") >>> worker5.name '' >>> worker5.paycheck '' >>> worker5.name="New Body" >>> worker5.paycheck=50000 >>> >>> worker5.name 'New Body' >>> worker5.paycheck 50000 >>> worker1.paycheck 15000 >>> worker1.paycheck=55000 >>> worker1.paycheck 55000 >>> setattr(worker1, "paycheck", 60000) >>> worker1.paycheck 60000 >>> >>> >>> delattr(worker1, "name") >>> worker1 <__main__.myclass instance at 0x0222EA80> >>> worker1.name Traceback (most recent call last): File "<pyshell#372>", line 1, in <module> worker1.name AttributeError: myclass instance has no attribute 'name' 6.2. Class Built-In Attributes By default, all Python classes have the following built-in attributes that can be accessed using the dot operator just like the __doc__ attribute that provides the documentation of the class. __dict__ : The dictionary of the namespace of the class __doc__ : Class documentation string or none, if undefined __name__ : Class name __module__ : Module name in which the class is defined. This attribute is "__main__" in interactive mode __bases__ : A possibly empty tuple containing the base classes, in the order of their occurrence in the base class list. Trying the above methods for the above defined myclass, we have the following result. >>> print "The name of the class is :", myclass.__name__ The name of the class is : myclass >>> print "The name of the module is :", myclass.__module__ The name of the module is : __main__ >>> print "The bases for the class myclass is :", myclass.__bases__ The bases for the class myclass is : () >>> print "The dictionary of namespace for myclass are :",myclass.__dict__ The dictionary of namespace for myclass are : {'count': 4, '__module__': '__main__', 'displayworkerCount': <function displayworkerCount at 0x02244B70>, 'displayworkerName': <function displayworkerName at 0x02244BB0>, '__doc__': 'This docstring provides for the details of the class defined', '__init__': <function __init__ at 0x02244B30>} >>> print "The document string for myclass is: ",myclass.__doc__ The document string for myclass is: This docstring provides for the details of the class defined >>>