源码网_python 源代码

发布时间:2025-12-09 14:11:51 浏览次数:4

源码结构目录

可以看到此模块定义了4个属性和12个函数,我们依次来讲解

属性源码分析

# 匹配http://或https://absolute_http_url_regexp = re.compile(r"^https?://", re.I)# 使用$$转义$符号dolloar_regex_compile = re.compile(r"$$")# 变量符号, e.g. ${var} or $varvariable_regex_compile = re.compile(r"$\{(\w+)\}|$(\w+)")# 函数符号, e.g. ${func1($var_1, $var_3)}function_regex_compile = re.compile(r"$\{(\w+)\(([$\w\.\-/\s=,]*)\)\}")

函数源码分析

parse_string_value

作用:将字符串转换为数字

"123" => 123"12.2" => 12.3"abc" => "abc""$var" => "$var"

build_url

作用:在url前面加上base_url,除非它已经是绝对url

regex_findall_variables

作用:从内容中提取所有变量名,格式为$variable

Examples:>>> regex_findall_variables("$variable")["variable"]>>> regex_findall_variables("/blog/$postid")["postid"]>>> regex_findall_variables("/$var1/$var2")["var1", "var2"]>>> regex_findall_variables("abc")[]

regex_findall_functions

作用:从字符串内容中提取所有函数,格式为${fun()}

Examples:>>> regex_findall_functions("${func(5)}")["func(5)"]>>> regex_findall_functions("${func(a=1, b=2)}")["func(a=1, b=2)"]>>> regex_findall_functions("/api/1000?_t=${get_timestamp()}")["get_timestamp()"]>>> regex_findall_functions("/api/${add(1, 2)}")["add(1, 2)"]>>> regex_findall_functions("/api/${add(1, 2)}?_t=${get_timestamp()}")["add(1, 2)", "get_timestamp()"]

extract_variables

作用:递归提取内容中的所有变量

parse_function_params

作用:将函数参数解析到argskwargs

Examples:>>> parse_function_params(""){'args': [], 'kwargs': {}}>>> parse_function_params("5"){'args': [5], 'kwargs': {}}>>> parse_function_params("1, 2"){'args': [1, 2], 'kwargs': {}}>>> parse_function_params("a=1, b=2"){'args': [], 'kwargs': {'a': 1, 'b': 2}}>>> parse_function_params("1, 2, a=3, b=4"){'args': [1, 2], 'kwargs': {'a':3, 'b':4}}

get_mapping_variable

作用:获取映射变量

get_mapping_function

作用:获取映射函数

parse_string

作用:将带有变量和方法的字符串,转为字符串实际内容

Examples:>>> raw_string = "abc${add_one($num)}def">>> variables_mapping = {"num": 3}>>> functions_mapping = {"add_one": lambda x: x + 1}>>> parse_string(raw_string, variables_mapping, functions_mapping)    "abc4def"

parse_data

作用:封装parse_string提供给外部调用

parse_variables_mapping

作用:解析变量映射

parse_parameters

作用:解析参数,参数有3种形式
1. list列表:e.g. ["iOS/10.1", "iOS/10.2", "iOS/10.3"]
2.csv文件上传:"${parameterize(account.csv)}"
3.从debugtalk.py函数中生成:${gen_app_version()}

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477