python面向对象基础(外婆都能学会的Python教程(二十七):Python面向对象编程(一))python教程 / python面向对象编程教程...

wufei123 发布于 2024-06-18 阅读(4)

前言Python是一个非常容易上手的编程语言,它的语法简单,而且功能强大,非常适合初学者学习,它的语法规则非常简单,只要按照规则写出代码,Python解释器就可以执行下面是Python的入门教程介绍一下Python面向对象编程,非常重要,非常重要,非常重要,。

外婆看完都学会了,你也来看看吧!面相对象编程(Object Oriented Programming,OOP)它是一种程序设计思想,OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数与面向过程编程不同的是,面向过程编程把计算机程序视为一系列的命令集合,即一组函数的顺序执行,有时候简化程序设计,把大函数切分成子函数。

python面向对象基础(外婆都能学会的Python教程(二十七):Python面向对象编程(一))python教程 / python面向对象编程教程...

类和实例面向对象最重要的概念就是类(Class)和实例(Instance)必须牢记类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同在Python中,定义类是通过class关键字,下面例子中Animal是一个类,它拥有name和age两个属性。

classAnimal(object):def__init__(self, name, age): self.name = name self.age = age defget_name

(self): returnself.name defset_name(self, name): self.name = name defget_age(self):

returnself.age defset_age(self, age): if age < 0: raise ValueError("age cant be negative"

) self.age = age类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。

上面的Animal定义了一个类,即类的名字是Animal,它拥有两个属性:name和age,是一个模板animal = Animal("dog", 2)创建了一个符合Animal模板的实例,通过这样的方式就可以创建各种各样的实例。

类的说明因为在Python中,属性可以被直接访问,所以,要让内部属性不被外部访问,可以把属性的名称前加上两个下划线,在Python中,实例的变量名如果以开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。

但是如果外部代码要获取name和age怎么办?可以给Animal类增加get_name和get_age这样的方法,让外部代码去调用,这样就隐藏了内部的复杂逻辑如果又要允许外部代码修改name和age怎么办?可以再给Animal类增加set_name和set_age方法,这样就可以检查参数,避免传入无效的参数。

变量访问限制形如__name变量,双下划线开头的变量是私有变量,只能在类内部访问,外部不能访问形如_name变量,单下划线开通的变量是保护变量,只能在类或子类中访问,外部不能访问形如name变量,以双下划线开头和结尾的变量是特殊变量,可以直接访问,不是私有变量,一般是系统定义的变量名。

继承和多态定义:当一个类继承了一个父类,它就获得了父类的所有功能,子类可以在父类的基础上定义自身的新方法和属性,这样就形成了继承关系例子:定义一个Dog类,继承自Animal类,可以直接从Animal类继承所有属性和方法。

classAnimal(object):defrun(self): print("Animal can run") deffly(self): print("Animal can fly"

) classDog(Animal):defbark(self): print(" Dog can bark") classBird(Animal):deffly(self): print(

"Bird can fly") dog = Dog() dog.run() # Animal can run dog.bark() # Dog can bark bird = Bird() bird.run()

# Animal can run bird.fly() # Bird can fly从上面的例子可以看出,继承可以把父类的所有功能都直接拿过来,这样就不必从零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。

如果Dog自己也有一个run方法,该打印什么结果呢?classAnimal(object):defrun(self): print("Animal can run") classDog(Animal)

:defrun(self): print("Dog can run") defbark(self): print(" Dog can bark") dog = Dog() dog.run()

# Dog can run如果子类和父类都存在相同的run方法,则子类的run方法覆盖了父类的run方法,这样就获得了继承的另一个好处:多态多态的好处:调用方只管调用,不管细节,而当我们新增一种Animal的子类时,只要确保run()方法编写正确,不用管原来的代码是如何调用的,这就是著名的“开闭”原则。

结束寄语恭喜你看完这篇Python教程,你已经超过99%的人了,学习编程一定要系统学习,关注我带你快速入门Python,提高工作效率!喜欢就关注我给我点个赞吧,精彩内容会第一时间推送给你有问题可以回复或私信我,看到我会给你耐心解答!。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻91222