Python 进阶函数-1 | 函数引用,默认参数,动态参数以及应用

· Special

day11 进阶函数模块

函数参数补充

函数参数地址引用

函数修改原始数据,不采用其他编程语言深度拷贝

函数参数地址返回

data与v1指向同一块地址,被引用计数器保存
def adr_count():
    data = [1,2,3,4,5]
    print(id(data))
    return data

v1 = adr_count()
print(id(v1))
def adr_count():
    data = [1,2,3,4,5]
    print(id(data))
    return data

v1 = adr_count()
print(v1,id(v1))

v2 = adr_count()
print(v2,id(v2))

默认参数补充

动态参数补充

顺序,默认,动态(元组,字典)

动态参数练习题

创建函数根据csv文件下载视频并写入文件
模仿,https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300f570000bvbmace0gvch7lo53oog&ratio=720p&line=0
卡特,https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200f3e0000bv52fpn5t6p007e34q1g&ratio=720p&line=0
罗斯,https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200f240000buuer5aa4tij4gv6ajqg&ratio=720p&line=0

根据路径

#创建函数,读取文件,分割获取名称和链接,下载链接,以获取名称为名字打开文件,将下载内容放入
#import requests

# def down_video_func(csv_path):
#     #获取文件名字和链接
#     name_link_list = []
#     with open(csv_path, 'r') as f:
#         for line in f:
#             data = line.split(',')
#             name_link_list.append(data)
#
#     #循环列表下载链接
#     for k,v in name_link_list:
#         #下载链接
#         down_content = requests.get(
#             url = v,
#             headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36'}
#         ).content
#
#         #创建文件
#         with open(f'{k}.mp4', 'wb') as f:
#             f.write(down_content)
#
# down_video_func('1.csv')

根据字典

#创建下载字典
down_dict = {}
with open('1.csv',mode = 'r',encoding='utf8') as f:
    for line in f:
        data = line.split(',')
        down_dict[data[0]] = data[1]

def down_video_fun(*args,**kwargs):
    #循环获取名称和下载链接
    for k,v in kwargs.items():
        #下载链接
        down_content = requests.get(url = v,
                                    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36'}
                                    ).content
        #创建下载视频文件
        with open(f'{k}.mp4','wb') as f:
            f.write(down_content)

down_video_fun(**down_dict)

创建下载函数

#创建下载函数
def downlaod_video(name,link):
    data = requests.get(link,headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36'}).content
    with open(f'{name}.mp4','wb') as f:
        f.write(data)

#打开csv文件
with open('1.csv',mode='r',encoding='utf-8') as f:
    #循环获取name和link
    for line in f:
        data = line.strip()
        data = data.split(',')
        downlaod_video(data[0],data[1])

python


评论

行为验证™ 安全组件加载中...