Python笔记(十九)_继承】的更多相关文章

继承 继承可以把父类的所有功能都直接拿过来,这样就不必从零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写 多重继承 通过多重继承,一个子类就可以同时获得多个父类的所有功能 >>>class A(): def __init__(self): print("进入A…") print("离开A…") >>>class C(A): def __init__(self): print("进入C…")…
私有属性 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,就变成了一个私有属性,只有内部可以访问,外部不能直接访问或修改. 这样就确保了外部代码不能随意修改对象内部的状态,这样通过访问限制的保护,代码更加健壮 那如果想让外部代码获取私有属性该怎么办? 修改内部代码:可以给类增加访问方法(return self.__name)和修改方法(self.__score=score) >>>class Student(object): def get_name(self): r…
JavaScript JavaScript是网络上最常用也是支持者对多的客户端脚本语言.它可以收集用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页游戏. 我们可以在网页源代码的<script>标签里看到,比如: <script type="text/javascript" src="https://statics.huxiu.com/w/mini/static_2015/js/sea.js?v=201601150944"…
代码: # -*- coding: utf-8 -*- """ 学习线程同步,使用条件变量 逻辑: 生产消费者模型 一个有3个大小的产品库,一个生产者负责生产,一个消费者负责消费 每次生产或消费一个产品,产品库满了,生产者必须等待,产品库空了,消费者必须等待 生产者的速度是消费者的速度2倍,先启动消费者,一段时间后启动生产者 总结: 1. 条件变量底层用到R锁,对于已经获得锁的线程可以执行多次 acquire(),锁多次 2. 不确定是否和java的这一套 ,原理一样 使用:…
try-except语句 try: 被检测代码 except Exception [as reason]: 出现异常后的处理代码 例: try: sum = 1+' f=open('未定义文件.txt') print(f.read()) f.close except OSError as reason: print('文件出错啦!错误原因:' + str(reason)) except TypeError as reason: print('类型错误' + str(reason)) 运行结果:类…
pickle模块:将所有的Python对象转换成二进制文件存放 应用场景:编程时最好将大对象(列表.字典.集合等)用pickle写成永久数据包供程序调用,而不是直接写入程序 写入过程:将list转换为二进制写入my_pickle文件中 import pickle list=[1,2,3] pickle_file = open('my_pickle.pkl','wb') pickle.dump(list,pickle_file) pickle_file.close() 读出过程:将二进制文件my_…
文件的打开模式 'r':以只读的方式打开文件(默认) 'w':以写入的方式打开文件,会覆盖已存在的文件 'x':用写入的方式打开文件,如果文件已存在,会抛出异常 'a':用写入的方式打开文件,如果文件已存在,则在末尾追加写入 'b':以二进制模式打开文件 't':以文本模式打开文件 文件对象方法 打开文件对象 1.在单独写程序时,代码中需要打开文件,将程序与文件位置放在一块即可 f=open(file_name) 2.在交互环境中打开文件,需写出文件的位置 f=open('E:/data/tes…
python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法 同一台机器同时安装 python2.7 和 python3.4不会冲突.安装在不同目录,然后把python34目录下的python.exe和pythonw.exe重命名为python3.exe和pythonw3.exe环境变量配置:D:\Python27\;D:\Python27\Scripts;D:\Python34\;D:\Python34\Scripts; 在cmd命令行里面输入p…
自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest): #1.打开两个文件:1个关联读操作,1个关联写操作 fr=open(src,'rb') fw=open(dest,'wb') #读和写操作 content=fr.read() fw.write(content) #关闭两个文件 fw.close() fr.close() def copyFile01(src,dest): #1.打开两个文件:1个关联读操作.1个关联写操作 fr=…
演示:读取中文字符 结论: 1).如果不设置encoding,默认使用gbk进行编解码 2).如果编码和解码不一致,最终导致报错,但是一旦设置了errors='ingore',那么就不会报错,而采取乱码现象显示 3).tell():返回的是文件描述符的字节位 4).对于读操作,必须保证路径中的文件一定是真实存在的,否则报错:FileNotFoundError #打开文件: f2=open(r'F:\PyCharm\多味红豆\python第二十九课——文件读写\a.txt','r',encodin…
十九. 模板 ● 模板的基本概念 模板(template) 函数模板:可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计. 语法: template <<模板的类型形参表>> <函数声明> 类模板:代表一簇类, 用户可以为类定义一种模式, 使得类中的某些数据成员, 某些成员函数的参数, 返回值或局部变量能取任意类型(包括系统预定义的和用户自定义的) 语法: template <<模板的类型形参表>> <类声明…
来自https://blog.csdn.net/sunwukong_hadoop/article/details/80175292 1.Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法. 假设Base是基类. class Base(object): def __init__(self): print “Base init” 普通方法: class Leaf(Base): def __init__(self): Base.__init__(…
模块 在Python中,一个.py文件就是一个模块 if __name__ == '__main__':所有模块都有一个 __name__ 属性,__name__ 的值取决于如何应用模块 run当前文件时,__name__ 属性的值是 '__main__',此函数被执行: *可用于调试当前文件中的函数 当前文件被其他模块调用时,__name__ 属性的值是该模块的名字,此函数不会被执行: *可以直接被第三方调用 也是因为此,要注意模块被调用时会加载模块,导致这个模块被“执行”,所以要将功能代码块…
缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显,这就是需要缓存的地方,缓存一些东西是为了保存那些需要很多计算资源的结果,这样的话就不必在下次重复消耗计算资源. Django自带了一个健壮的缓存系统来让你保存动态页面这样避免对于每次请求都重新计算.方便起见,Django提供了不同级别的缓存粒度:你可以缓存特定视图的输出.你可以仅仅缓存那些很难生产出…
比如有下面如下的代码,每个函数都需要判断debug的是否为True,而默认的debug为False def a(x,debug=False): if debug: print('calling a') def b(x,y,z,debug=False): if debug: print('calling b') def c(x,y,debug=False): if debug: print('calling c') 上面的代码可以编写一个装饰器为被包装的函数添加额外的参数来简化,但是添加的参数不能…
继承性的主要目的,继承的实现,继承的限制                继承是面向对象中的第二大主要特点,其核心的本质在于:可以将父类的功能一直沿用下去                为什么需要继承?            那么为了更好的区分出之前学习的概念与现在程序的区别,下面通过两个具体的代码来进行研究            例如:现在有俩个类:Person,Student,按照原始的方式,程序代码实现如下: class Person{ private String name; privat…
迭代 用for...in来遍历一个可迭代对象的过程就叫迭代 可迭代对象:列表.元组.字典.集合.字符串.生成器 可以使用内置函数isinstance()判断一个对象是否是可迭代对象 >>>from collections import Iterable >>>isinstance('abc',Iterable) True >>>isinstance('abc',(int,str)) True 迭代器 可以被next()函数调用并不断返回下一个值的对象称…
协议(Protocols) 协议仅是用定义某些任务或者是功能必须的方法和属性. 类似于java里的interface的作用.但协议并不会实现详细的功能. 我猜这个名字源于OO中提到的"契约".但我并不认为这名字非常好,反而是interface这名字更容被接受.由于我认为协议这个名字非常easy和网络编程的时候的网络协议搞混,网络协议也通常简称为协议. 语法: protocol MyProtocol {      //协议定义 } struct MyStruct: MyProtocol1…
笔记: 1.内嵌函数:函数内部新创建另一个函数 2.闭包:函数式编程的重要语法,如果在一个内部函数里,对外部作用域(但不是在全局作用域的变量)进行引用,那么内部函数就会被认为是闭包. 3.nonlocal:用于声明局部变量   测试题 0. 如果希望在函数中修改全局变量的值,应该使用什么关键字? global    1. 在嵌套的函数中,如果希望在内部函数修改外部函数的局部变量,应该使用什么关键字?  nonlocal   2.Python的函数可以嵌套,但要注意访问的作用域问题哦,请问以下代码…
(一)    字符串 单引号.双引号.三重引号都可以作为字符串的开始和结束,三重引号可以直接输入多行字符串.三重引号可能一般是用来写多行注释. (二)    r和\ r使字符串成为原始字符串,忽略所有转义字符. \是转义字符. (三)    字符串下标和切片 (四)    字符串的in和not in (五)    改变大小写 方法 说明 upper() 将所有字母转换为大写(返回的是一个新字符串,原字符串不会被改变) lower() 将所有字母转换为小写(返回的是一个新字符串,原字符串不会被改变…
在 Python 中,数据的属性和处理数据的方法统称属性(attribute).其实,方法只是可调用的属性.除了这二者之外,我们还可以创建特性(property),在不改变类接口的前提下,使用存取方法(即读值方法和设值方法)修改数据属性 除了特性,Python 还提供了丰富的 API,用于控制属性的访问权限,以及实现动态属性.使用点号访问属性时(如 obj.attr),Python 解释器会调用特殊的方法(如__getattr__ 和 __setattr__)计算属性 使用 __new__ 方法…
#encoding=utf-8 # python高级编程 # python面向对象 # 创建类 # 无意中把Visual Studio Code的窗口调小了,查了一下,可以使用Ctrl+=放大窗口,使用Ctrl+-缩小窗口 class Person: # 这里类的申明用class 'The baseclass of Human' # 文档字符串,相当于类的描述 ins_count=0 # 这里申明的是类变量,在所有实例化对象中是公用的,类似于我们所说的静态变量 def __init__(self…
一.继承 1.概念: 继承是类于类之间的关系,是一种"is a "的关系 Ps: Java是单继承 2.优势: (1)子类直接拥有父类的所有属性和方法(除了privata) (2)实现代码复用 3.语法规则: 4.一个demo (1)动物类 package com.cnblogs; public class Animal { public int age; public String name; public void eat() { System.out.println("…
概述 进程: 是一个正在执行中的程序 每一个进程执行都有一个执行顺序,该执行顺序是一个执行路径,或者叫一个控制单元 线程: 就是进程中的一个独立的控制单元,线程在控制着进程的执行 一个进程中至少有一个线程 Java JVM启动的时候会有一个进程java.exe,该进程中至少有一个线程负责Java程序的执行,而且这个线程运行的代码存在于main方法中,该线程称之为主线程,与C类似,java.exe相当于所有进程的父进程,而且JVM启动了不止一个线程,还有负责垃圾回收的线程 创建线程 第一种创建方式…
本章将从Python案例讲起:所使用bs4做一个简单的爬虫案例,更多内容请参考:Python学习指南 案例:使用BeautifulSoup的爬虫 我们已腾讯社招页面来做演示:http://hr.tencent.com/position.php?&start=10#a 使用BeautifulSoup4解析器,将招聘网页上的职位名称.职位类别.招聘人数.工作地点.时间.以及每个职位详情的点击链接存储出来. #-*- coding:utf-8 -*- from bs4 import Beautiful…
多线程糗事百科案例 案例要求参考上一个糗事百科单进程案例:http://www.cnblogs.com/miqi1992/p/8081929.html Queue(队列对象) Queue是python中的标准库,可以直接import Queue引用:队列时线程间最常用的交互数据的形式. python下多线程的思考 对于资源,加锁是个重要的环节.因为python原生的list,dict等,都是not thread safe的.而Queue,是线程安全的,因此在满足使用条件下,建议使用队列 初始化:…
File IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据读出来继续使用呢?其实要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘.光盘.U盘等)上. 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作.当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作.因此我们把这种输入和…
一.面向对象: class(类):一类拥有共同属性对象的抽象:定义了这些对象的属性和方法object(对象):是一个类实例化后的实例,类必须经过实例化才可以在程序中调用: 由于之前学习过java,对类和对象已经有了一定的了解了,就不再详细介绍. 二.特性 encapsulation(封装):将内部的内容封装起来了.例如数据的设置.访问和处理结果我们都可以通过调用实例的方法直接获取,而不需要知道内部的处理逻辑.inheritance(继承):一个类可以派生出子类,父类中定义的属性和方法被子类自动继…
一.列表生成式 列表生成式就是python设置的可以用来可以生成列表的. 如要生成一个0-9的列表我们可以通过以下代码实现: >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 但是如果生成的列表较为复杂呢?例如生成包含0².1².2²...9²这样一个列表: >>> L = [] >>> for i in range(10): ... L.append(i*i) ... >>> L…
例: 开发动物类,其中动物分别为企鹅以及老鼠,要求如下: 企鹅: 属性(姓名,id), 方法(吃,睡,自我介绍) 老鼠: 属性(姓名,id), 方法(吃,睡,自我介绍) 企鹅类: public class Penguin{ private String name; private int id; public Penguin(String myName, int myid){ name = myName; id = myid; } public void eat(){ System.out.pr…