小编给大家分享一下Python知识点案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
万物皆是对象,Python当然支持面向对象编程。类和对象是面向对象编程的两个主要方面,类创建一个新的对象,对象是这个类的实例。
对象可以使用类的变量,属于对象或类的变量被称为域;对象也可以使用属于类的函数,这样的函数称为类的方法;域和方法可以合称为类的属性。
域有两种类型
- <李>属于实例的李> <>李属于类本身李>
它们分别被称为实例变量和类变量。
类使用关键字类<代码> 代码>创建,类的域和方法被列在一个缩进块中。
类的方法必须有一个额外的第一个参数,但是在调用时不为这个参数赋值,这个特殊变量指对象本身,按照惯例它的名称是自我,类Java中似的。
在类中下面两个特都方法需要注意:
- <李>
<代码> __init__ 代码>方法:在类的一个对象被创建时调用该方法;相当于c++中的构造函数,就是当这个类调用了,那么这个__init__方法就要执行。
李> <李><代码> __del__ 代码>方法:在类的对象被销毁时调用该方法;相当于c++中的析构函数。在使用▽删除一个对象时也就调用__del__方法,__del__是最后调用的。
李>Python中所有的类成员(包括数据成员)都是公共的,没有Java的私有类,也就是人人都有调用类,虽然编写变成很简单, 但是资源人人都可以随意分配访问,在项目中确实一个不好的东西。
但是Python类的却有私有变量和私有方法之说,这个是一个例外,如果使用的数据成员以双下划线为前缀,则为私有变量。
你实例化这个类,访问不了。这是很多人忽略的
比如:
类公共(): _name=& # 39;保护类型的变量& # 39; __info=& # 39;私有类型的变量& # 39; def _f(自我): print(“这是一个受保护的类型的方法“)def __f2(自我): 打印(& # 39;这是一个私有类型的方法& # 39;)def(自我): 返回(self.__info) 酒吧=公共()#先打印可以访问的打印(pub._name) pub._f() # # # #结果如下# # # #保护类型的变量 这是一个受保护的类型的方法#打印下类私有变量和私有方法打印(pub.__info) 报错:& # 39;公共# 39;对象没有属性& # 39;__info& # 39; pub._f2 () 报错:pub._f2()复制代码
但是私有属性和方法可以在同一个类中被调用
pub.get() # # # # # # # & # 39;私有类型的变量& # 39;复制代码
上面是很多人不知道的,下面,我来声明一个人类
类人(): 数=0 def __init__(自我、名字、年龄): 的人。数+=1 self.name=名字 自我。__age=年龄 p=人(“Runsen", 20) 打印(p.Count) # 1说明我实例化,这个__init__方法就要执行打印(p.name) # Runsenprint (p.__age) # AttributeError: Person实例没有属性& # 39;__age& # 39; #私有变量访问不了,报错复制代码
继承
面向对象编程(OOP),英语全称:面向对象编程,面向对象编程的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
继承,其实这样理解,就是我写了一个爸爸类和儿子类,爸爸有钱,儿子却没钱,于是儿子决定继承爸爸,调用爸爸的钱(爸爸类的变量和方法)。
继承一个类,基本使用下面的五个方法。
直接调用父类属性方法;
爸爸有钱,儿子却没钱,于是儿子用爸爸的钱
类父亲(): def __init__(自我): 自我。钱=1000 def行动(自我): 打印(& # 39;调用父类的方法& # 39;) 类的儿子(父亲): 通过 儿子儿子=()#子类儿子继承父类父亲的所有属性和方法son.action() #调用父类属性输出:调用父类的方法 的儿子。钱#调用父类属性输出:1000年复制代码
强制调用父类私有属性方法;
爸爸说,你这个儿子,老是用我的钱,我决定藏私房钱。儿子试试<代码>超级()代码>拿你的私房的钱,但是这里需要注意超级()<代码> 代码>强制调用父类私有属性方法,就是重写方法,私有变量是不能用晚餐继承不了,还不可以访问父类中的私有属性方法的变量,就是儿子是拿不了私房钱的。
类父亲(): __money=1000 #私有变量是继承不了 def __action(自我):#父类的私有方法 钱=1000 打印(& # 39;调用父类的方法& # 39;) 类的儿子(父亲): def行动(自我): super () ._Father__action () 打印(钱) 儿子儿子=() son.action () 调用父类的方法 名字& # 39;钱# 39;以前没有定义复制代码Python知识点案例