Movatterモバイル変換


[0]ホーム

URL:


Open In App
Next Article:
Python objects
Next article icon

A class in Python is a user-defined template for creating objects. It bundles data and functions together, making it easier to manage and use them. When we create a new class, we define a new type of object. We can then create multiple instances of this object type.

Classes are created usingclass keyword. Attributes are variables defined inside the class and represent the properties of the class. Attributes can be accessed using the dot . operator (e.g., MyClass.my_attribute).

Create a Class

Python
# define a classclassDog:sound="bark"# class attribute

Create Object

An Object is an instance of a Class. It represents a specific implementation of the class and holds its own data.

Now, let's create an object fromDog class.

Python
classDog:sound="bark"# Create an object from the classdog1=Dog()# Access the class attributeprint(dog1.sound)

sound attribute is a class attribute. It is shared across all instances of Dog class, so can be directly accessed through instancedog1.

Using __init__() Function

In Python, class has__init__()function. It automatically initializes object attributes when an object is created.

Python
classDog:species="Canine"# Class attributedef__init__(self,name,age):self.name=name# Instance attributeself.age=age# Instance attribute

Explanation:

  • class Dog: Defines a class named Dog.
  • species: A class attribute shared by all instances of the class.
  • __init__ method:Initializes the name and age attributes when a new object is created.

Initiate Object with __init__

Python
classDog:species="Canine"# Class attributedef__init__(self,name,age):self.name=name# Instance attributeself.age=age# Instance attribute# Creating an object of the Dog classdog1=Dog("Buddy",3)print(dog1.name)# Output: Buddyprint(dog1.species)# Output: Canine

Output
BuddyCanine

Explanation:

  • dog1 = Dog("Buddy", 3): Creates an object of the Dog class with name as "Buddy" and age as 3.
  • dog1.name:Accesses the instance attribute name of the dog1 object.
  • dog1.species: Accesses the class attribute species of the dog1 object.

Self Parameter

selfparameter is a reference to the current instance of the class. It allows us to access the attributes and methods of the object.

Python
classDog:def__init__(self,name,age):self.name=nameself.age=agedefbark(self):print(f"{self.name} is barking!")# Creating an instance of Dogdog1=Dog("Buddy",3)dog1.bark()

Output
Buddy is barking!

Explanation:

  • Inside bark(), self.name accesses the specific dog's name and prints it.
  • When we call dog1.bark(), Python automatically passes dog1 as self, allowing access to its attributes.

__str__ Method

__str__ method in Python allows us to define a custom string representation of an object. By default, when we print an object or convert it to a string using str(), Python uses the default implementation, which returns a string like <__main__.ClassName object at 0x00000123>.

Python
classDog:def__init__(self,name,age):self.name=nameself.age=agedef__str__(self):returnf"{self.name} is{self.age} years old."# Correct: Returning a stringdog1=Dog("Buddy",3)dog2=Dog("Charlie",5)print(dog1)print(dog2)

Output
Buddy is 3 years old.Charlie is 5 years old.

Explanation:

  • __str__ Implementation:Defined as a method in the Dog class. Uses the self parameter to access the instance's attributes (name and age).
  • Readable Output:When print(dog1) is called, Python automatically uses the __str__ method to get a string representation of the object. Without __str__, calling print(dog1) would produce something like <__main__.Dog object at 0x00000123>.

Class and Instance Variables in Python

In Python, variables defined in a class can be eitherclass variables or instance variables, and understanding the distinction between them is crucial for object-oriented programming.

Class Variables

These are the variables that are shared across all instances of a class. It is defined at the class level, outside any methods. All objects of the class share the same value for a class variable unless explicitly overridden in an object.

Instance Variables

Variables that are unique to each instance (object) of a class. These are defined within __init__ method or other instance methods. Each object maintains its own copy of instance variables, independent of other objects.

Example:

Python
classDog:# Class variablespecies="Canine"def__init__(self,name,age):# Instance variablesself.name=nameself.age=age# Create objectsdog1=Dog("Buddy",3)dog2=Dog("Charlie",5)# Access class and instance variablesprint(dog1.species)# (Class variable)print(dog1.name)# (Instance variable)print(dog2.name)# (Instance variable)# Modify instance variablesdog1.name="Max"print(dog1.name)# (Updated instance variable)# Modify class variableDog.species="Feline"print(dog1.species)# (Updated class variable)print(dog2.species)

Output
CanineBuddyCharlieMaxFelineFeline

Explanation:

  • Class Variable (species):Shared by all instances of the class. Changing Dog.species affects all objects, as it's a property of the class itself.
  • Instance Variables (name, age): Defined in the __init__ method. Unique to each instance (e.g., dog1.name and dog2.name are different).
  • Accessing Variables: Class variables can be accessed via the class name (Dog.species) or an object (dog1.species). Instance variables are accessed via the object (dog1.name).
  • Updating Variables:Changing Dog.species affects all instances. Changing dog1.name only affects dog1 and does not impact dog2.

Python Classes and Objects
Visit Courseexplore course icon
Improve
Article Tags :
Practice Tags :

Similar Reads

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood ourCookie Policy &Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences

[8]ページ先頭

©2009-2025 Movatter.jp