函数
官方提供的函数
- python官方提供的函数,可以直接调用
- https://docs.python.org/zh-cn/3/library/functions.html#abs
自定义函数
def log_out():
poco("com.sundayfun.daycam:id/swipe").child("android.widget.LinearLayout").offspring("com.sundayfun.daycam:id/main_page_my_profile_icon_layout").child("com.sundayfun.daycam:id/iv_tab_icon").click()
poco("com.sundayfun.daycam:id/iv_setting").click()
while True:
if not poco(text="退出登录").exists():
poco.swipe([0.5,0.8],[0.5,0.4])
else:
print("退出登录")
poco(text="退出登录").click()
sleep(1.0)
poco(text="退出登录").click()
break
poco("com.sundayfun.daycam:id/welcomeLoginText").click()
sleep(1.0)
return
def send_try(a,b):
if a>0:
a=a+b
b=a^2
else:
a=b
b=b+1
return a,b
print(send_try(3,1))
print(send_try(-3,1))
定义空函数
def nothing():
pass
递归函数
- 一个函数在内部调用自身,这就是递归函数。
- 使用递归函数需要可能会出现栈溢出,通过「尾递归」可以解决潜在的溢出问题
- 尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式
def fact1(n):
if n==1:
return 1
return n * fact1(n - 1)
def fact2(n):
return fact_iter(n, 1)
def fact_iter(num, product):
if num == 1:
return product
return fact_iter(num - 1, num * product)

参数
可变参数
- 可变参数允许传入0个或任意个参数,可变参数在函数调用时自动组装为一个tuple
def sum_number(*numbers):
sum = 0
for n in numbers:
sum = sum + n
return sum
sum_number(1,2,3,4,5)
sum_number()
try_list=[1,2]
sum_number(*try_list)

关键字参数
- 关键字参数允许传入0个或任意个含参数名的参数,并在函数内部自动组装为一个dict
def person(name, age, **kw):
pass
命名关键字参数
def person(name, age, *, city, job):
print(name, age, city, job)
- 传参是可以组合使用:用必选参数、默认参数、可变参数、关键字参数和命名关键字参数;
- 参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
部分Error
- 1、调用函数时,如果参数个数不对,Python解释器会自动检查出来,并抛出TypeError
- 2、内置函数可以检查出参数错误,但是自定义的函数无法检查出参数类型不正确