在本教程中,我们将讨论Python中的Oops Contepts。
面向对象的概念主要侧重于编写可重复使用的代码。它使用类和对象来设计程序。对象与现实世界的实体有关,如汽车、自行车、计算机等。
就像其他通用的编程语言一样,Python也是一种面向对象的语言。它允许通过创建类和对象,用面向对象的方法开发应用程序。
因此,在本教程中,我们将讨论Python中不同类型的OOPS概念,以及如何和在哪里使用它们。
类
Python中的类被定义为对象的集合。它就像一个对象构造器或创建对象的蓝图。类包含具体的细节,如属性和方法。
现实世界中的例子,汽车是一个类,因为世界上有不同种类的汽车,但都属于汽车类。
关键字class ,用来创建一个类。
class Car:
name = 'Ford'
model = '2022'
对象
在Python中所有的东西都是对象。一个对象通常是一个类的实例,可以用来访问该类中的一切。
当一个类被定义时,它需要创建一个该类的对象来分配内存。
class Car:
name = 'Ford'
model = '2022'
carObj = Car()
print(carObj.name)
print(carObj.model)
输出
Ford
2022
在上面的例子中,定义了类Car ,有两个属性name 和model 。
构造函数
在Python中,构造函数是一种特殊的方法,当对象被创建时,在运行期间用来初始化类的成员。
Python有内置的函数__init__() ,作为构造函数的名称。当类被启动时,函数__init__() 会自动执行,以便为对象属性赋值。
class Book:
def __init__(self, name, author):
self.name = name
self.author = author
def displayBookDetails(self):
print('Book Name: '+self.name+' , Author: '+self.author)
bookObj = Book('Clean Code', 'Robert C. Martin')
bookObj.displayBookDetails()
在上面的示例代码中,当创建一个Book 类的对象并初始化数据成员(如果有)时,自动调用函数__init__() 。
方法
方法是定义在一个类中的函数。这些方法可以通过类对象来访问。在Python中,方法并不只针对类的实例,任何对象类型都可以有方法。
class Car:
def __init__(self, name, model):
self.name = name
self.model = model
def getName(self):
print(self.name)
def getModel(self):
print(self.model)
carObj = Car('Maruti', '2021')
carObj.getName()
carObj.getModel()
输出
Maruti
2021
在上面的示例代码中,在类Car 中定义了方法getName() 和getModel() 。创建了汽车类的对象carObj ,并使用对象访问方法。
我们还使用了内置的__init__() 函数,该函数在类被启动时总是被执行,以给对象属性赋值。所以在上面的例子中,我们是在创建对象时传递构造函数值。
继承
继承是面向对象编程的一个重要方面。它允许我们模拟现实世界中的继承概念。
继承允许我们定义一个父类,继承子类的所有方法和属性。
继承属性的类被称为子类,继承属性的类被称为父类或基类。
在这里,首先我们将创建一个父类/基类。
class Person:
def __init__(self, name, city):
self.name = name
self.city = city
def displayDetails(self):
print(self.name, self.city)
personObj = Person('Adam', 'Newyork')
personObj.displayDetails()
现在我们将创建一个子类student ,从另一个类中继承功能。在创建子类时,我们将把父类Person ,作为一个参数来继承它。
class Person:
def __init__(self, name, city):
self.name = name
self.city = city
def displayDetails(self):
print(self.name, self.city)
class Student(Person):
pass
studentObj = Student('William', 'London')
studentObj.displayDetails()
在上面的示例代码中,创建一个子类Student ,并将类Persona 作为参数来继承它。现在我们可以用子类调用继承类的方法。
当我们不想给类添加任何其他属性或方法时,我们可以在类中使用pass 关键字。
Python中的数据隐藏
数据隐藏是面向对象编程的一个重要方面。它允许把数据变成私有的,这样它就不会被其他类成员访问。它只能在声明它的类中被访问。
在Python中,我们需要在变量名称前写上双下划线(__) 来声明变量,使其成为私有变量。
class Calculate:
__num = 10
def add(self, value):
sum = self.__num + value
print(sum)
obj = Calculate()
obj.add(20)
print(obj.__num)
在上面的示例代码中,通过在变量名称前写上双下划线(__) 来声明私有。变量在类内调用时不会有任何错误。但是当在类外访问时,它将返回错误。