面试题答案
一键面试-
字面量类型推断对函数行为的影响:
- 对于整数类型字面量参数,Python 会推断其为
int
类型。这意味着函数可以直接对其进行整数相关的操作,如算术运算等。如果传入的不是整数,在进行整数特定操作时会引发类型错误。 - 对于列表字面量参数,Python 会推断其为
list
类型。由于列表中可能包含不同类型数据,在函数内部处理时需要特别小心,不同类型的数据可能需要不同的处理方式。例如,如果列表中有数字和字符串,对数字可以进行数学运算,而对字符串可能需要进行字符串相关操作。
- 对于整数类型字面量参数,Python 会推断其为
-
在函数内部正确处理推断结果:
- 可以使用
isinstance
函数来检查列表中元素的类型,然后根据不同类型进行相应处理。
- 可以使用
示例代码如下:
def process_data(int_value, list_value):
# 对整数参数进行操作,例如简单的自增
new_int_value = int_value + 1
result = []
for item in list_value:
if isinstance(item, int):
# 如果列表元素是整数,也进行自增操作
new_item = item + 1
elif isinstance(item, str):
# 如果列表元素是字符串,在其末尾添加一个字符
new_item = item + '!'
else:
# 其他类型暂不处理,保持原样
new_item = item
result.append(new_item)
return new_int_value, result
# 调用示例
int_literal = 5
list_literal = [1, 'hello', 3.14]
result_int, result_list = process_data(int_literal, list_literal)
print(f"处理后的整数: {result_int}")
print(f"处理后的列表: {result_list}")
代码解释:
- 定义了
process_data
函数,接收int_value
(整数类型字面量)和list_value
(列表字面量)两个参数。 - 对
int_value
进行了简单的自增操作,得到new_int_value
。 - 遍历
list_value
,使用isinstance
检查每个元素的类型。如果是int
类型,对其进行自增;如果是str
类型,在字符串末尾添加!
;其他类型保持不变。将处理后的元素添加到result
列表中。 - 最后返回处理后的整数和处理后的列表,并在调用处打印结果。