python 03

静态方法

如果类中需要非该类成员存在,则可以使用静态调用的方法@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)
原文地址:https://www.cnblogs.com/lyc0303/p/11323164.html