python继承的多种类型
类型说明单一继承1、单级继承使派生类能够从单个父类继承特征。多级继承2、多级继承使派生类能够从直接父类继承属性。而直接父类又从其父类继承属性。3、层次继承分层级继承使多个派生类能够从父类继承属性。4、多重继承多级继承使一个派生类可以从多个基类继承属性。实例class employee1()://Pa...
2024-01-10python二分查找的原理
原理1、假设表中的要素按升序排列,将表中间位置记录的关键词与检索关键词进行比较,如果两者相等,则检索成功。2、否则,利用中间位置记录将表分为前后两个子表。如果中间位置记录的关键词大于搜索关键词,则进一步搜索前一个子表,否则进一步搜索后一个子表。重复以上流程,找到符合条...
2024-01-10python链表法的优缺点
1、优点,方便删除记录,直接处理数组对应下标的子数组。平均搜索速度快。如果有冲突,只需要查询子数组。2、缺点,使用指针导致查询速度较慢,内存占用可能较高,不适合序列化。而开放式寻址法的优缺点与链表法相反。因为Python的一切都是基于Dict的,都需要序列化,所以选择了开放式寻址法...
2024-01-10python迭代器的优缺点
说明1、迭代器优点,节省内存,迭代器在内存中相当于只占一个数据的空间。因为每次取值都上一条数据会在内存释放,加载当前的此条数据。惰性机制。next一次,取一个值,绝不过多取值。 有一个迭代器模式可以很好的解释上面这两条:迭代是数据处理的基石。扫描内存中放不下的数据...
2024-01-10python中类对象的介绍
1、类对象是将具有相似属性和方法的对象抽象总结为类对象,可以定义相似的一些属性和方法。不同的实例对象去引用类对象的属性和方法,能减少代码的重复率。2、语法解析,当解释器执行class语句时,就会创建一个类对象,类的数据类型是type类型。class 类名:实例class Animal: pass # 占位,...
2024-01-10python的广播机制详解
目录为什么会有广播机制在矩阵或向量相关运算中的广播机制1、一般的运算2、一个矩阵一个向量的情况3、两个向量4、矩阵乘法的广播机制总结为什么会有广播机制python语言在设计的时候,就就考虑到用于两个运算的矩阵或向量维度不匹配的问题。例如,我们有矩阵A,让矩阵每个元素都加1,直接使...
2024-01-10python做的游戏有哪些
比较大型的,使用Python的游戏有两个,一个是《EVE》,还有一个是《文明》。另外GitHub上有很多开源的小游戏,下面给大家介绍一下:1. Github上面有个项目Free Python Games,里面集合了不少的Python开发的小游戏,能玩,也适合新手用来练练手,另外 PyGame 这个网站里面里面集合了很多Python开发的小游戏。2....
2024-01-10python继承的两点好处
说明1、子类获得了父类的所有功能。因为Animial实现了run()方法,Dog和Cat作为子类,自动拥有run()方法。2、当子类和父类有相同的run()方法时,子类的run()覆盖了父类的run(),当代码运行时,总是调用子类的run()。这样就得到了继承的另一个好处,多态。实例dog = Dog()dog.run() cat = Cat()cat.run()以上就是p...
2024-01-10详解python中的装饰器
在了解装饰器之前,我们需要知道什么闭包是什么鬼!闭包:在一个函数内定义了一个函数f,并且这个函数f引用外部变量,在把这个函数f当做返回值返回。上述说了闭包的三个条件:1 函数内定义了一个函数f2 f函数引用了外部变量3 f被当做返回值返回def t1():#定义t1函数 x=2 def f():#t1函数内部定义...
2024-01-10python内存泄露的原因
内存泄漏:你使用malloc或new向 内存申请了一块内存空间,但没有用free以及delete对该块内存进行释放,造成程序失去了对该块内存的控制。内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失...
2024-01-10python实现简单登陆流程的方法
登陆流程图:代码实现:#-*- coding=utf-8 -*-import os,sys,getpass'''user.txt 格式账号 密码 是否锁定 错误次数jack 123 unlock 0tom 123 unlock 0lily 123 unlock 0hanmeimei 123 unlock 0lucy 123 unlock 0'''# 定义写入文件的函数def wirte_to_user_file(users,user_file_path): user_file = file(user_fil...
2024-01-10python中INF值的介绍
1、Infinity代表无穷大,属于浮点类型,np.inf代表无穷大,-np.inf代表无穷大。一般除数为0的时候是大的。例如2/0。2、经常做判断语句(表示必须运行的条件语句)和不等式判断。实例#inf 正负无穷设为nandf.replace([np.inf, -np.inf], np.nan)#空值设为0df = df.fillna(0) # 空值设为0以上就是python中INF值的介绍,...
2024-01-10python中的三种推导式介绍
1、列表推导式,在一个中括号里包含一个表达式。old_list = [0,1,2,3,4,5]new_list = []for item in old_list: if item % 2 == 0: new_list.append(item) print(new_list)2、字典推导式,把[]改成了{},并且组成元素有key和value。old_student_score_info = { "Jack": { "chinese": 87, "math...
2024-01-10python缺省参数的使用注意
说明1、缺省参数的定义位置,要保证带有默认值的缺省参数在参数列表末尾。2、调用函数时,如果有多个缺省参数,需要指定参数名称。实例def print_info(name, title="", gender=True): """ :param title: 职位 :param name: 班上同学的姓名 :param gender: True 男生 False 女生 """ ...
2024-01-10python引用计数机制的使用
说明1、python里每一个东西都是对象,它们的核心就是一个结构体:PyObject。2、具有简单、实时性。一旦没有引用,内存就直接释放了。不用像其他机制等到特定时机。实例 typedef struct_object { int ob_refcnt; struct_typeobject *ob_type;} PyObject; PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数...
2024-01-10Python获取GIL锁的流程
1、流程(1)先尝试去获取互斥量mutex,如果获取失败,则循环监控locked状态,等待持有锁的线程释放锁(2)如果获取到互斥量,将locked状态置1,表示锁已被该线程持有,其他线程需要等待,然后释放互斥量,让其他线程有机会进入临界区等待上锁2、实例int PyThread_acquire_lock(PyThread_type_lock lock, int w...
2024-01-10python变长参数的使用场景
说明1、为函数添加装饰器。2、如果参数数量不确定,可以考虑使用变长参数。例如,在读取一些配置文件中的配置项。3、为了实现函数的多态,或者在继承的情况下,子类需要调用父类的一些方法。实例#coding:utf8 def powersum(power, **args): print type(args) print "args is %s" % args for k,v...
2024-01-10python双向链表的概念介绍
说明1、更复杂的链表是双向链表或双面链表。每个节点有两个链接:一个指向前一个节点,这个节点是第一个。2、一个节点指向空值,另一个指向下一个节点,当该节点指向最后一个节点时指向空值。操作方法is_empty()链表是否为空。length(链表长度。travel)经历链表。添加add(item)链表头部。添加到append(it...
2024-01-10python垃圾回收机制的思考
一、前言 Python 是一门高级语言,使用起来类似于自然语言,开发的时候自然十分方便快捷,原因是Python在背后为我们默默做了很多事情,其中一件就是垃圾回收,来解决内存管理,内存泄漏的问题。 内存泄漏:当程序不停运行,有一部分对象没有作用,但所占内存没有被释放,服务器内存随...
2024-01-10python中pdb的中断控制
1、根据用户输入的调试命令,pdb在跟踪frame的每一步时都会进行中断控制,决定下一步是否中断,中断到哪一行。2、stop_here是中断控制的主要方法。中断控制是指在输入不同的调试命令后,代码可以执行到正确的位置,等待用户输入。例如,输入s控制台应该在下一个运行frame的代码处停止,输出c需要...
2024-01-10python默认参数的使用注意
说明1、默认值可以指定为一个或多个参数,调用函数时不需要传入参数值。大大降低了函数调用的难度。2、当默认参数的默认值需要用传入的参数值代替时,可以按照参数位置顺序传入,也可以指定参数名传入。实例def person_info(name, age, sex='man'): print("My name is %s, I am %s years old, I am %s" ...
2024-01-10python对文件及目录的操作
python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r“c:\python”)检验给出的路径是否是一个文件:os.path...
2024-01-10关于python的多重继承问题
比如C同时继承A和B:class A(object): def fn(self): print('run A')class B(object): def fn(self): print('run B')class C(A,B): pass其中A和B都有fn这个方法,这个时候如果通过C类来调用fn函数:s=C()s.fn()个人测试了一下,默认会调用A类中的fn方法。但是如果我想调用B函数中的fn方法呢?这个时候应该怎...
2024-01-10python中的加减乘除小知识
python中的加减乘除小知识:#!usr/bin/env python# -*- coding:utf-8 -*-#python的算法加减乘除用符号:+,-,*,/来表示#以下全是python2.x写法,3.x以上请在python(打印放入括号内) 例如:print('1+1=',1+1)print( '*-----------------------------------------------------*分割符')print ("1+1=",1+1 ) #打印加法1+1的结果2prin...
2024-01-10python参数中默认值的执行
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。1、默认值只会执行一次,如果你传入的参数是可变对象(列表,字典和类实例)的话,我们需要注意这个问题。def f(a, L=[]): L.append(a) return L print(f(1))print(f(2))print(f(3)) # 输出[1][1, 2][1, 2, 3]2、如果不想在后面的调用中共享...
2024-01-10