Python面向对象知识点总结

上传人:枫** 文档编号:543766654 上传时间:2022-07-29 格式:DOCX 页数:13 大小:34.51KB
返回 下载 相关 举报
Python面向对象知识点总结_第1页
第1页 / 共13页
Python面向对象知识点总结_第2页
第2页 / 共13页
Python面向对象知识点总结_第3页
第3页 / 共13页
Python面向对象知识点总结_第4页
第4页 / 共13页
Python面向对象知识点总结_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《Python面向对象知识点总结》由会员分享,可在线阅读,更多相关《Python面向对象知识点总结(13页珍藏版)》请在金锄头文库上搜索。

1、Python面向对象知识点总结一、变量你可以把变量想象成一个用来存储值的单词。二控制流程:条件语句“If”使用一个表达式来判断一个语句是True还是False,如果是True ,那么执行if内的代码;三、循环和迭代在Python中,可以用不同的形式来进行迭代。我会说下while和for。List :集合|数组|数据结构用Python的语法,也很好去理解:字典:Key-Value数据结构迭代:通过数据结构进行循环跟我们在Python基础中学习的一样,List迭代十分简单。我们Python开发者通常使用For循环。类&对象些理论:Python面向对象编程模式:ON类:用来描述具有相同的属性和方法的

2、对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。class类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写。实例变量:定义在方法中的变量,只作用于当前实例的类。继承:即一派生类(derived class )继承基类(base class )的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。创建类#!/usr/bin/env pyt

3、honclass Price(object):#新式类,object类是所有类的基类/父类def(self):#构造函数,当实例化对象时自动调用self.price =:100#属性self.count = 0.7(self):#方法new_price = self.price * self.countnew_priceprint#构析函数,执行price方法时自动调用p = Price() print p.pricepri nta变量是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内 部类或外部类使用P访问。第一种方法_init_()方法是一种特殊的方法,被称为类的构造函数或初始化

4、 方法,当创建了这个类的实例时就会调用该方法self代表类的实例,self在定义类的方法时是必须有的,虽然在调用时不 必传入相应的参数。self代表类的实例,而非类类的方法与普通的函数只有一个特别的区别一一它们必须有一个额外的第 个参数名称,按照惯例它的名称是self。输入:#!/usr/bin/env python class Test :def (self):print(self)nt (self._class_)t = Test()5)输出/usr/bin/python27 /root/PycharmProjects/untitled/002.pymain_.TestProcess fi

5、nished with exit code 0从执行结果可以很明显的看出,self代表的是类的实例,代表当前对象的地 址,而self.class则指向类。self不是python关键字,我们把他换成runoob也是可以正常执行的:创建实例对象访问属性:可以使用点()来访问对象的属性。使用如下类的名称访问类变量:class Price(object):def price (self)new_price = self.price * self.countreturnprintp.price#访问属性p = Price()#实例化过程printp.aPython内置类属性_dict_ :类的属性(包

6、含一个字典,由类的数据属性组成)_doc_ :类的文档字符串_name_: 类名_module_: 类定义所在的模块(类的全名是_main_.className,如 果类位于一个导入模块 mymod中,那么className._module_ 等于 mymod)_bases_ :类的所有父类构成元素(包含了一个由所有父类组成的元组)Python内置类属性调用实例如下:#!/usr/bin/env python# coding二utf-8class Exam :self.name = nameself.salary = salaryExam.name = haha,hehe print Exam

7、._dOc_H printprint Exam._module_Exam._bases_Bpython 对象销毁(垃圾回收)Python使用了引用计数这一简单技术来跟踪和回收垃圾。在Python内部记录着所有使用中的对象各有多少引用。个内部跟踪变量,称为一个引用计数器。当对象被创建时,就创建了一个引用计数,当这个对象不再需要时,也就是说,这个对象的引用计数变为0时,它被垃圾回收。但是回收不是 立即的,由解释器在适当的时机,将垃圾对象占用的内存空间回收。b = a#增加引用,40的计数c = b加引数Ia少引计数b = 100少引计数Ic0=-厂少引计数J垃圾回收机制不仅针对引用计数为0的对象,

8、同样也可以处理循环引用的情 况。循环引用指的是,两个对象相互引用,但是没有其他变量引用他们。这 种情况 下,仅使用引用计数是不够的。Python的垃圾收集器实际上是一 个引用计数器和一个循环垃圾收集器。作为引用计数的补充,垃圾收集器也会留心被分配的总量很大(及未通过引用计数销毁的那些)的对象。在这种情况下,解释器会暂停下来,试图清理所有未引用的循环。类的继承面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之 是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。号里,基本类是在类定义的时候,在元组之中指明的。在python中继承中的一些特点:1 :在继承中基类的构造(_i

9、nit_()方法)不会被自动调用,它需要在其派 生类的构造中亲自专门调用。2 :在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数3 : Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应 的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不 到才去基类中找)。如果在继承元组中列了一个以上的类,那么它就被称作多重继承。输入#!/usr/bin/env pythonZulHdefZ_in_(self):H print OfatherB def fatherMethodprint i am fa

10、therMethod def setfa (self八Father.fatheTMehodTI class Son(Falhei丿.print i am sonH def sonMethod (self):H print i am sonMethod Hs = Son() s.fatherMethod() s.sonMethod()输出:i am soni am fatherMethod i am sonMethod也可以继承多个类:class C(A, B):r#继承类A和B调用方法重写输入:#!/usr/bin/env pythonit_ (self)printdef fatherMeth

11、odprint i am fatherMethod class son(Lalhel):def fatherMethodprint i am big boyH类属性与方法类的私有属性_private_attrs :两个下划线开头,声明该属性为私有,不能在类的外部被 使用或直接访问。在类内部的方法中使用时self._private_attrs。类的方法在类的内部,使用def关键字可以为类定义一个方法,与一般函数定义不同, 类方法必须包含参数self,且为第一个参数类的私有方法_private_method :两个下划线开头,声明该方法为私有方法,不能在类 地外部调用。在类的内部调用self._p

12、rivate_methods输入:class Father:a =:100二#公开变量_haha = 0 #私有变量print iafherBdef fatherMethodprint i am fatherMethod def fatherMethodprint i am big boyHSon()s.fatherMethod()Son._haha() #报错输出:Traceback (most recent call last):File /root/PycharmProjects/untitled/004.py , line 16, Son._haha()ttributeError: class Son has no attribute _haha单下划线、双下划线、头尾双下划线说明:_foo_:定义的是特列方法,类似_init_()之类的。_foo:以单下划线开头的表示的是protected类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于from module import *_foo:双下划线的表示的是私有类型(private)的变量,只能是允许这个类 本身进行访问了。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号