|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
反过来,先定义子函数,但子函数中要用到 主函数中产生的变量。 不能直接用? 只能通过参数1传递给子函数吗? 那如果这种变量多,怎么办?
def sub1(参数1):
变量_文件主名
if __name__ == "__main__":
for home, dirs, files in os.walk("./"):
变量_文件主名
在这种情况下,确实需要将主函数中产生的变量作为参数传递给子函数。子函数不能直接访问主函数中的局部变量。如果变量很多,可以考虑以下几种方法来简化代码:
1. 使用元组、列表或字典将多个变量打包为一个参数传递给子函数。例如:
def sub1(args):
变量_文件主名 = args[0]
# 其他操作
if __name__ == "__main__":
for home, dirs, files in os.walk("./"):
变量_文件主名 = ...
sub1((变量_文件主名,))
2. 使用类将相关变量组织起来。这样,您可以在实例化类时将变量作为类的属性传递给子函数。
class MyClass:
def __init__(self, 变量_文件主名):
self.变量_文件主名 = 变量_文件主名
def sub1(self):
# 在这里使用 self.变量_文件主名
pass
if __name__ == "__main__":
for home, dirs, files in os.walk("./"):
变量_文件主名 = ...
my_instance = MyClass(变量_文件主名)
my_instance.sub1()
3. 使用 *args 或 **kwargs 在子函数中接收可变数量的参数。这样,您可以在调用子函数时将任意数量的参数传递给它。
def sub1(*args):
变量_文件主名 = args[0]
# 其他操作
if __name__ == "__main__":
for home, dirs, files in os.walk("./"):
变量_文件主名 = ...
sub1(变量_文件主名, 参数2, 参数3, ...)
或者使用关键字参数:
def sub1(**kwargs):
变量_文件主名 = kwargs['变量_文件主名']
# 其他操作
if __name__ == "__main__":
for home, dirs, files in os.walk("./"):
变量_文件主名 = ...
sub1(变量_文件主名=变量_文件主名, 参数2=值2, 参数3=值3, ...)
这些方法可以帮助您更有效地管理和传递多个变量。
|
|