Python中的OOPs
Python中的OOPs是一种编程方法,致力于像其他通用编程语言一样使用对象和类。 对象可以是任何现实世界的实体。 Python允许开发人员使用OOPs方法开发应用程序,主要侧重于代码可重用性。 在Python中创建类和对象非常容易。
什么是类?
类是数据和函数的逻辑分组。 它提供了创建包含任意内容并因此易于访问的数据结构的自由。
如何定义Python类
要定义类,你需要考虑以下几点
第1步)在Python中,类由“ class”关键字定义
class myClass():
步骤2)在类内部,您可以定义属于该类的函数或方法
def method1 (self): print "Guru99"def method2 (self,someString): print "Software Testing:" + someString
在这里,我们定义了显示“ Guru99”的method1。
我们定义的另一个方法是method2,它打印"Software Testing"+ SomeString。 SomeString是调用方法提供的变量
步骤3)类中的所有内容都缩进,就像函数,循环,if语句等中的代码一样。所有不缩进的内容都不在类中
![67a63bcdd63f358ea45b1f34ebc59b47.png](https://i-blog.csdnimg.cn/blog_migrate/9589285fdeba717dfe1e6f92950dc64a.jpeg)
注意:关于在Python中使用“self”
self是指对象本身。 因此,在此方法内部,self将引用正在操作的该对象的特定实例。
步骤4)创建该类的一个对象
c = myClass()
步骤5)调用类里面的方法
c.method1() c.method2(" Testing is fun")
- 请注意,当我们调用method1或method2时,我们不必提供self关键字。 这由Python运行时自动为我们处理。
- 在实例上调用实例方法时,无论是否有意提供,Python运行时都会传递“ self”值
- 您只需要关心非self参数
步骤6)这是完整的代码
# Example file for working with classesclass myClass(): def method1(self): print("Guru99") def method2(self,someString): print("Software Testing:" + someString) def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main()
继承的原理
继承是面向对象编程中使用的功能。 它指的是定义一个新类,而对现有类的修改很少或没有修改。 新类称为派生类,而被新类继承的类称为基类。 Python支持继承; 它还支持多重继承。 一个类可以从另一个称为子类或继承类的类继承属性和行为方法。
![bfb3189e07de194d799b05a407bb76a5.png](https://i-blog.csdnimg.cn/blog_migrate/ca81fb87454d8dc14b41d747e83102ac.jpeg)
Python继承语法
class DerivedClass(BaseClass): body_of_derived_class
步骤1)运行以下代码
# Example file for working with classesclass myClass(): def method1(self): print("Guru99") class childClass(myClass): def method1(self): myClass.method1(self); print ("childClass Method1") def method2(self): print("childClass method2") def main(): # exercise the class methods c2 = childClass() c2.method1() #c2.method2()if __name__== "__main__": main()
请注意,未定义childClass中的method1,但它是从父myClass派生的。 输出为“ Guru99”。
步骤2)取消注释第8和10行。运行代码
![af675ef04b59847418bb32b171447016.png](https://i-blog.csdnimg.cn/blog_migrate/0c00d99e267b3fa32f46a28d92a66c63.jpeg)
现在,在childClass中定义了method1,并正确显示了输出“ childClass Method1”。
步骤3)取消注释第9行。 运行代码
![70ed894cbfe62ee48c966d71e2babf77.png](https://i-blog.csdnimg.cn/blog_migrate/60603efe9dcdf07ea8c09a9db28cd495.jpeg)
您可以使用以下语法调用父类的方法
ParentClassName.MethodName()
在我们的例子中,我们调用myClass.method1(self)并按预期方式打印Guru99
步骤4)取消注释第19行 c2.method2()。 运行代码。
调用子类的method2,并按预期方式打印“ childClass method2”。
Python构造函数
构造函数是将对象实例化为预定义值的类函数。
它以双下划线(_)开头。 __init __()方法
在下面的示例中,我们使用构造函数获取用户的名称。
class User: name = "" def __init__(self, name): self.name = name def sayHello(self): print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()
输出将是:
Welcome to Guru99, Alex
Python 2示例
上面的代码是Python 3的示例,如果要在Python 2中运行,请考虑以下代码。
# How to define Python classes# Example file for working with classesclass myClass(): def method1(self): print "Guru99" def method2(self,someString): print "Software Testing:" + someString def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main()#How Inheritance works# Example file for working with classesclass myClass(): def method1(self): print "Guru99" class childClass(myClass): #def method1(self): #myClass.method1(self); #print "childClass Method1" def method2(self): print "childClass method2" def main(): # exercise the class methods c2 = childClass() c2.method1() #c2.method2()if __name__== "__main__": main()
摘要:
“类”是功能和数据的逻辑分组。 Python类提供了面向对象编程的所有标准功能。
- 类继承机制
- 派生类重写其基类的任何方法
- 方法可以调用具有相同名称的基类的方法
- Python类由关键字“class”本身定义
- 在类内部,您可以定义属于该类的函数或方法
- 类中的所有内容都缩进,就像函数,循环,if语句等中的代码一样。
- Python中的self参数是指对象本身。 self是Python约定惯用的名称,用于表示Python中实例方法的第一个参数
- 在实例上调用实例方法时,无论是否故意提供,Python运行时都会自动传递“ self”值
- 在Python中,一个类可以从另一个称为子类或继承类的类继承属性和行为方法。