DAY6 函数和模块的使用

本文探讨了如何通过函数和模块管理避免代码重复,介绍了函数定义、可变参数的应用及模块间同名函数的调用方式,并讨论了代码作用域的相关概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数和模块的使用

#引言#
编程大师Martin Fowler先生曾经说过:“代码有很多种坏味道,重复是最坏的一种!”,要写出高质量的代码首先要解决的就是重复代码的问题。

一、函数定义的格式
def function(a,b,…) :
description
return val

二、在不确定参数个数的时候,我们可以使用可变参数,代码如下所示。

在参数名前面的*表示args是一个可变参数

即在调用add函数时可以传入0个或多个参数

def add(*args):
total = 0
for val in args:
total += val
return total

print(add())
print(add(1))
print(add(1, 2))
print(add(1, 2, 3))
print(add(1, 3, 5, 7, 9))

**三、**用模块管理函数,由于Python中不能进行函数重载,所以在同一模块中不能存在同名函数,但是在不同模块中可以有同名函数,因此可以在不同模块(module1,module2,。。。)中进行定义同名函数,用模块进行管理和调用。

四、函数调用的基本格式:
from module1 import foo()
from module2 import foo()

注意:

1.在同一个代码模块中,分别调用其他两个不同模块中的同名函数时,如果都是用: from module1 import foo() 格式进行调用,则后一个函数会覆盖前一个同名函数,同一个foo()其实都是调用的第二个foo()
2.需要说明的是,如果我们导入的模块除了定义函数之外还中有可以执行代码,那么Python解释器在导入这个模块时就会执行这些代码,事实上我们可能并不希望如此,因此如果我们在模块中编写了执行代码,最好是将这些执行代码放入如下所示的条件中,这样的话除非直接运行该模块,if条件下的这些代码是不会执行的,因为只有直接执行的模块的名字才是“main”。
例:
def foo() :
print(‘Hello World !’)

if name== ‘main’ :
print(‘This is from module 1’)

##关于变量在代码中的作用域
事实上,Python查找一个变量时会按照“局部作用域”、“嵌套作用域”、“全局作用域”和“内置作用域”的顺序进行搜索

1.我们可以通过global来改变全局作用域中的变量值 global a a= 1
2.我们可以通过nonlocal来改变嵌套作用域中的变量值 nonlocal b b= 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值