静态方法
如果类中需要非该类成员存在,则可以使用静态调用的方法@staticmethod
""" 输入四边形判断它是否是一个正方形 如果是:计算面积 @staticmethod """ class Square(object) : def __init__(self,a,b,c,d): self.a = a self.b = b self.c = c self.d = d @staticmethod def is_valid(a,b,c,d): for i in [b,c,d]: if i !=a: return False else: return True def area(self): if res == True: area_ = self.a * self.b return area_ print(area_) square = Square(3,3,3,3) res = square.is_valid(3,3,3,3) if res == True: square.area()
类
@classmethod:获取自身类(cls)中的属性,并且可以更改. classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
from time import time, localtime, sleep class Clock(object): """数字时钟""" def __init__(self, hour=0, minute=0, second=0): self._hour = hour self._minute = minute self._second = second @classmethod def now(cls): ctime = localtime(time()) return cls(ctime.tm_hour, ctime.tm_min, ctime.tm_sec) def show(self): """显示时间""" return '%02d:%02d:%02d' % (self._hour, self._minute, self._second) clock = Clock.now() print(clock._second)
继承
私有变量不可以被继承
函数不可以被继承
class A(object): def __init__(self): self.a = 100 self.b = 200 def sum(self): sum = self.a + self.b return sum #在类名中写上继承的类 class B(A): # 这个init是B自身的 def __init__(self): A.__init__(self) #super(A,self).__init() def Print(self): res = self.sum() print(res) b_ = B() b_.Print()
创建python 的虚拟环境
1.conda create --name env_name python=3.7
2.conda activate env_name 进入
3.conda deactivate 退出
4.conda env list 查看虚拟环境
5.conda remove --name env_name 删除虚拟环境
6.pip freeze 查看当前环境自己的安装包
列表生成式
a = [x for x in range(100000000000) if x % 2== 0]
优点: 计算速度快,因为一次性已经全部加载到内存中了
适合数据量不是太大的情况10000- 2000-
缺点: 占用内存
列表生成器
a = (x for x in range(100000000000) if x % 2== 0)
优点: 节约内存空间
缺点: 计算速度慢,因为要生成.
装饰器
""" 创建一个装饰器,三个函数(两个参数), 装饰器处理这两个参数的和 每个函数打印这两个数字 """ def deco(func): def warp(num1,num2): print('num1+num2=',num1+num2) return func(num1,num2) return warp @deco def sum(num1,num2): print(num1,num2) sum(1,2)
""" 装饰器将前面两个数字求和,函数本身第三个参数乘上这个和 """ def deco(func): def warp(num1,num2,num3): num = num1 + num2 return func(0,num,num3) return warp @deco def sum(num1,num2,num3): print(num2 * num3) sum(1,2,3)