python–pipreqs的使用、函数与方法、偏函数

一、pipreqs的使用
咱们写项目,项目的依赖:requirements.txt文件

多种方式实现:
手写
虚拟环境:

pip freeze > requirements.txt

使用第三方插件自动生成:只生成当前项目所依赖的模块
安装项目依赖:

pip3 install pipreqs==0.4.0

项目根路径下执行,生成依赖文件:

pipreqs ./ --encoding=utf-8(windows需指定utf-8编码)
出现已存在问题,执行 pipreqs ./ --encoding=utf8 --force

安装依赖文件:pip3 install -r requirements.txt
二、函数和方法
函数就是普通函数,不会自动传值
方法是函数,但是它会自动传值,面向对象中概念
方法,你得看谁来调用,如果类调用对象的方法,它就变成了普通函数,就不是方法了

示例:

from types import MethodType, FunctionType


class Foo(object):
    def fetch(self): # 绑定给对象的方法,正常应该对象来掉用,就是方法
        pass


# isinstance:判断一个对象是不是一个类的对象(包含父类)
# print(isinstance(Foo.fetch, MethodType)) # False,变成了函数
#
# print(isinstance(Foo.fetch, FunctionType))  # True


obj = Foo()
print(isinstance(obj.fetch, MethodType))  # True
print(isinstance(obj.fetch, FunctionType)) # False

三、偏函数
偏函数的第二个部分(可变参数),按原有函数的参数顺序进行补充,参数将作用在原函数上,最后偏函数返回一个新函数。

from functools import partial
# 提前传参,延迟计算
def add(a, b, c):
    return a + b + c

# res=add(3,4,5)
# print(res)

res = partial(add, 3)
# res 就是偏函数,提前先给add函数传了一个参数3,还没执行add,以后执行传两个参数就可以了,使用res

# print(res)

r=res(4,5)
print(r)
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐