首页 > 编程语言 >python复习

python复习

时间:2023-09-18 16:58:56浏览次数:51  
标签:__ 复习 python self object 对象 type

一 python简介

# 主流语言的区别
c:c代码写完,编译(不同平台),跨平台运行,linux上源码安装软件,自行编译
java:一处编码,处处运行,java是编译型还是解释型?编译型,编译过程---把java源代码编译成字节码文件 .class
---不能直接运行在操作系统上---》jvm(java虚拟机),jvm运行至少要300M内存
jdk
jre
jvm
javase  javame  javaee

go:编译型,跨平台编译(windows平台可以编译出linux平台的可执行文件),所有go代码打成一个可执行文件

python:强类型动态语言,一行一行的解释
js:只能在浏览器中运行,nodejs
php:web开发


# 将来从事的方向
1 python后端开发:做网站,前端可以是app,小程序的python后端
2 自动化云纹:收集服务器软件硬件信息(cmdb),jumpserver(堡垒机),sql审批,监控,日志收集,处理
3 自动化测试:selenium,appnium,pytest
4 数据分析
5 爬虫
6 量化交易
7 安全方向:端口扫描,弱口令扫描,sql注入,csrf工具,xss攻击
看书:python绝技:运用python成为顶级黑客
8 物联网
9 网络安全

二 数据类型

# == 和 is 的区别是:==是值相等,is是值和内存地址都相等

# python中一切皆对象,对象的实质,一个内存地址的指向
'''
python源码中,有pass的地方,是用c语言写的
'''

# type和object的关系
'''
type是objectd的类
type继承了object
type是type自己的类  c语言的指针可以自己指向自己
object也是type实例化得到
所有类,除了object都是继承自object,包括type
'''

# 一切对象的好处
'''
不同类型之间的变量直接可以相关赋值
a = 100
a = 'xxx'
本质,变量都是指向了一个内存地址,变量赋值就是向内存申请内存地址
'''

# 浅拷贝和深拷贝的区别
'''
1、Python 深拷贝和浅拷贝概念理解
浅拷贝,指的是重新分配一块内存,创建一个新的对象,但里面的元素是原对象中各个子对象的引用。

深拷贝,是指重新分配一块内存,创建一个新的对象,并且将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中。因此,新对象和原对象没有任何关联。

2、浅拷贝
使用数据类型本身的构造器
对于可变的序列,还可以通过切片操作符 : 来完成浅拷贝
Python 还提供了对应的函数 copy.copy() 函数,适用于任何数据类型
'''

from copy import copy,deepcopy
list1 = [1, 2, 3]
list2 = copy.copy(list1)

list1 = [[1, 2], (30, 40)]
list2 = copy.deepcopy(list1)

三 可变和不可变类型

......

四 字符编码

......

五 闭包函数

......

六 面向对象进阶(反射、魔法语法)

https://www.cnblogs.com/liuqingzheng/articles/9949568.html

作业一

写一个类,有个那么属性,如果name赋值为非字符串,不通过

'''
两个知识点应用,自定义异常和魔法方法__setattr__的应用
'''

'''
写一个类,有个那么属性,如果name赋值为非字符串,不通过
'''


# 自定义异常
class NoStrException(BaseException):
    def __init__(self, msg):
        self.msg = msg

    def __str__(self):
        return self.msg


class Person(object):
    # __setattr__ 对象.属性的时候,自动触发
    def __setattr__(self, key, value):
        # 判断value是不是该后面的对象,issubclass():判断前面的是不后面的子类
        if isinstance(value, str):
            # maximum recursion depth exceeded while calling a Python object
            # 最深度递归异常,因为setattr(self, key, value),内部执行的self.key = value
            # self.key,会点属性拦截,自动触发__setattr__,就是死循环递归函数,解决方法,用__dict__的方法
            # setattr(self, key, value)
            self.__dict__[key] = value
            # 第二种解决方法,不是对象调用方法,不能自动传参,所有指名道姓的传参,self也要对象也要传进去
            object.__setattr__(self, key, value)
        else:
            # print('你不能放')
            raise NoStrException('不是字符串异常')


person = Person()

try:
    person.name = 10
    # person.name = 'lq'
except NoStrException as e:
    print(e)

作业2

通过上下文管理器写一个mysql的链接,通过with管理

# with管理的作用,结束操作后,自动帮你关闭资源,文件读取用的这个with管理
import pymysql
class MySql():
    def __enter__(self):
        self.conn = pymysql.connect(
            host='127.0.0.1',
            port=3306,
            user='root',
            password='123',
            database='day47',
            charset='utf8'  # 编码不要加-
        )
        return self.conn # mysql对象拿到

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.conn.close()


with MySql() as mysql:
    cursor = mysql.cursor(cursor=pymysql.cursors.DictCursor)  # 产生一个游标对象(用来帮助执行命令)

print('mysql连接关闭')

七 异常

try:
    print(1/0)
except Exception as e:
    print(e)
else:    # 正常执行,没有出异常,会走
    print('正常执行,没有出异常,会走')
finally:    # 有没有异常,都会走
    print('有没有异常,都会走')

八 断点调试

'''
断点测试
第一步:打断点,鼠标左键点一下,有个红点,表示打了一个断点,如果走在这里程序停止
第二步: 以debug模式运行
第三步:快速跳到下一个断点,左侧的绿箭头(F9)
第四步:单步调试,跳到函数内部,把函数运行当做一句话,(F7)一步一步走,(F8)把函数运行当一句话
第五步:左侧的红点带斜杠,表示 快速把所有断点都设置为灰色

'''

 

标签:__,复习,python,self,object,对象,type
From: https://www.cnblogs.com/coderxueshan/p/17712379.html

相关文章

  • python 全角半角字符、字符串互转
    defis_chinese(uchar):"""判断一个unicode是否是汉字"""ifuchar>=u'\u4e00'anduchar<=u'\u9fa5':returnTrueelse:returnFalsedefis_number(uchar):"""......
  • python开发之个微群聊机器人的开发
    简要描述:退出群聊请求URL:http://域名地址/quitChatRoom请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识chatRoomId是string群id返回数据:参数名类型说明codestring1000成功,1001失败msgstring反馈信......
  • Python Matplotlib 库使用基本指南
    简介Matplotlib是一个广泛使用的Python数据可视化库,它可以创建各种类型的图表、图形和可视化效果。无论是简单的折线图还是复杂的热力图,Matplotlib提供了丰富的功能来满足我们的数据可视化需求。本指南将详细介绍如何安装、基本绘图函数以及常见图表类型的绘制方法。安装Matpl......
  • python+playwright 学习-1.环境准备与快速开始
    前言说到web自动化,大家最熟悉的就是selenium了,selenium之后又出现了三个强势的框架Puppeteer、CyPress、TestCafe,但这3个都需要掌握JavaScript语言,所以只是少部分人在用。2020年微软开源一个UI自动化测试工具Playwright,支持Node.js、Python、C#和Java语言。为什......
  • 超细讲解Java调用python文件的几种方式
    1.首选Java调用Python文件的方式:JythonJython(JavaPython)是一种Python解释器,它使用Java语言编写,可以让Python代码在Java环境下运行。Jython具有明显的优势,可以很好地兼容Python代码中的所有库,因此对于Java和Python开发者来说都是理想的工具。在使用Jython时,需要在Java环境中下载和......
  • Python 基本语法
    代码行单行代码每行代码结尾不需要加标点a=123多行换行多行代码,直接换行a=123b=a+1复杂过长的计算、操作可用括号然后缩进换行income=(gross_wages     +taxable_interest     +(dividends-qualified_dividends)     -ira_deduction......
  • python多线程中锁的概念 threading.Lock
    https://blog.csdn.net/qq_21439971/article/details/79356248 python的锁可以独立提取出来12345678mutex  =  threading.Lock()#锁的使用#创建锁mutex  =  threading.Lock()#锁定mutex.acquire([timeout])#释放mutex.release()......
  • python测试用例数据驱动(读取写入excel)
    Python中处理excel数据的模块非常多,比如:xlxd(只读)、xlwd(只写)、openpyxl(可读写)Excel文件和下面的py文件代码一定要在同一个文件夹内,不然需要指定具体的Excel文件路径注意:excel文件为xlsx,不能是xls再转换成xlsx格式的文件,会报错fromopenpyxlimportload_workbookcl......
  • 极速上手Python分布式爬虫
    随着互联网的快速发展,获取大量数据已成为许多项目的核心需求。而Python分布式爬虫是一种高效获取数据的方法。今天,我将个大家分享一下,想要极速上手Python分布式爬虫的一些知识,让你能够迅速掌握这一实用的技术。什么是分布式爬虫?分布式爬虫是一种利用多台机器协同工作的爬虫系统。它......
  • python包离线环境安装与批量安装
    python项目进行落地部署的时候,经常是在离线的服务器或者工控机中进行的。python不同于c类程序,可以直接复制外部依赖项文件夹,这时,python程序如果需要正常运行,需要编写过程中第三方库的支持。首先,在联网环境下,进入cmd终端,使用以下命令下载包python-mpipdownloadtest1test2==......