- 博客(19)
- 收藏
- 关注
原创 pycharm导入未安装的第三方库,无错误提示,急需
pandas 并未i安装,pandas下面不是应该有一个红色的波浪线么?我的pycharm一直没有,求解决方案?
2022-10-19 15:24:00
528
转载 python同步、互斥锁、死锁
转载:https://www.cnblogs.com/coder-qi/p/python-syn-mutex-lock-dead-lock.html
2021-06-09 14:53:13
136
原创 2021-06-08 线程,进程,协程,并发,并行,同步,异步
1. 线程,进程,协程(协程的性能最好)2. 并发,并行并行:任务数量小于等于cpu核数,即任务真的是一起执行的。并发:指的是任务数大于cpu核数,通过操作系统的各种任务调度算法,实现用多个任务‘一起’执行(实际上总有一个任务不执行, 因为切换任务的速度相当的快,看上去一起执行而已) 真正的并行执行多任务只能在多核cpu上实现,但是,由于任务数量远远多于cpu的核心数量,所以操作系统也会自动化把很多任务轮流调度到每个核心上执行3. 同步,异步同步(协同步调):是指线程在访
2021-06-08 20:30:03
152
1
原创 疑问:jsonpath获取j指定属性的值对应的另一个属性的值
dict = {"class": {"students": [{"student_id": "1", "name": "bob", "sex": "male", "age": 6}, {"student_id": "2", "name": "amy", "sex": "female", "age": 6}, {"student_id": "3", "name": "p.
2021-06-04 18:10:18
962
2
原创 2021-06-03 属性的访问机制:__getattr__,__getattribute__,__setattr__,__delattr__
1. 实例属性的增删查改 (与类属性无关)a. getattribute(self, item): 获取属性的相关方法,一定要有返回值class MyClass: def __getattr__(self, item): pass def __getattribute__(self, item): if item == "name1": return "cherry" else: retur
2021-06-03 20:02:47
88
原创 2021-06-03对象的属性限制__slots__
1. 内置属性_slots__:限制对象属性,在类定义中定义__slots__会覆盖默认__dict__行为, 可以对实例的对象进行限制.默认情况下,类的实例有一个字典用于存储属性,这对于具有很少实例变量的对象会浪费空间。当创建大量实例时,空间消耗可能会变得尖锐;可以通过在类定义中定义__slots__来覆盖默认__dict__行为。slots 声明接受一个变量序列,并在每一个实例中保留足够保存每个变量值的空间,因为没有为每个实例创建 dict ,所以节省空间class MyClass:
2021-06-03 19:34:31
89
原创 2021-06-03 类的属性操作__dict__
1. 类属性:公有的: _attr私有的:__attr : 类里面在定义这个属性的时候,python给它改了名字class MyClass: _attr = 100 # 公有属性,类外面可以访问 __attr = 200obj = MyClass()# print(obj._attr)# print(obj.__attr) # 直接访问私有属性会报错:'MyClass' object has no attribute '__attr'# tips: 通过__dict
2021-06-03 19:30:55
143
原创 2021-06-03 运算符对应的魔术方法
1. 加法 add+ 号前面的对象会触发加号,即+号前面的对象会传给self,+ 号后面的对象传给otherclass MyStr: def __init__(self, value): self.value = str(value) def __add__(self, other): print("对象使用+号会触发add方法", self.value, other.value) return self.value + other.va
2021-06-03 19:22:37
96
原创 2021-06-02 修饰pytest用例的装饰,断言处理
在最内层函数前面加上 @functools.wraps(func) ,是为了抵消装饰的副作用 @staticmethod def decorator_assert(result, sheetName, caseTitle): def wrapper1(func): @functools.wraps(func) def wrapper(*args, **kwargs): res = func(*args
2021-06-02 16:33:20
112
4
原创 2021-06-01 __str__ 方法
print输出的内容其实是对象的__str__返回的值class MyList: def __init__(self, value): self.value = valueobj = MyList([22, 33])print(obj)以上结果打印出对象 <main.MyList object at 0x0339BB08>添加str方法:class MyList1: def __init__(self, value): self
2021-06-01 15:47:28
290
原创 2021-06-01 通过类去实现装饰器__call__.
1. 含有__init__的类class MyClass: a = "cherry" def __init__(self,age,sex): self.age = age self.sex = sex def say(self): print("hello")obj = MyClass(age=10,sex="male")2. 不添加call方法class MyDecorator: def __init__(se
2021-06-01 15:23:34
167
原创 2021-06-01 __call__方法的使用
1. 判断一个对象是否可调用: callable(对象名)def work1(): passwork2 = [1, 2]res = callable(work1) # 返回TRUE: 函数可以调用,(函数名work2而不是work2())res1 = callable(work2) # 返回FALSE: 列表不可以调用print(res, res1)work1()以上结论:函数可以调用,列表不可以调用。2. Python 中,凡是可以将 () 直接应用到自身并执行,都称
2021-06-01 15:04:03
89
原创 2021-06-01 上下文管理器
一. 迭代器协议是由__iter__方法和__next__这两个魔术方法组成 1. __iter__方法 会在使用iter(obj),将可迭代对象转换为迭代器时调用 2. __next__方法 会在使用next(obj),对迭代器进行迭代操作时调用二. 为什么with去打开文件进行操作,会自动关闭文件对象?1. 因为with启动了文件操作对象的上下文管理器三. 上下文管理器协议的构成:1. __enter__方法:启动上下文时会自动调用2. __exit__方法:退出上下文时会
2021-06-01 14:55:07
71
原创 2021-05-31 单例模式
单例模式:一个类只能创建一个对象,这个类就是一个单例模式的类单例模式的实现: 1. 通过__new__方法去实现 2. 通过装饰器去实现单例模式的作用: 节约内存开销单例模式的应用:1. logclass MyClass(object): passobj1 = MyClass()obj2 = MyClass()obj3 = MyClass()print(id(obj1), id(obj2), id(obj3))以上代码会打印出3个不同的地址通过n
2021-05-31 19:49:16
119
原创 2021-05-31魔术方法
1. 什么是魔术方法: 双下划线开头和结尾的方法叫做魔术方法(特殊方法,魔法方法) 魔术方法不需要手动调用,都是在特定的情况下出发的 类实例化对象的过程: 1. 调用__new__,创建对象 2. 调用__init__,初始化对象2. __new__方法重写之后,就没法自己创建对象了:即不会再调用__init__函数def __new__(cls, *args, **kwargs): print("这是new方法")3. 如果还想创建对象,需要调用父类的__new
2021-05-31 19:44:45
49
原创 2021-05-31 各种装饰器
1. 计算时间的装饰器import timedef count_time(func): def wrapper(): start_time = time.time() func() end_time = time.time() print("执行时间{}".format(end_time - start_time)) return wrapper@count_timedef func01(): # fo
2021-05-31 19:38:00
53
原创 2021-05-27--装饰器的实现
1. 什么是装饰器2. 装饰器的作用 在不修改原代码的基础上,可以给原功能扩展新的功能3. 装饰器的实现1. 闭包实现装饰器def test(fun): # 把被装饰的函数当成参数传入,然后将返回的值传给被装饰的函数 """ :param fun: 用来接收被装饰器的函数 :return: """ def wrapper1(): # 通过装饰器扩展的功能1 print("扩展功能--开始") fun()
2021-05-29 14:38:50
78
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人