Python新手问题:关于函数的基本用法与常见疑问

shell 的函数中如果没写 return ,在调用的时候相当于调取了函数中的所有内容,但 python 中如果不写 return 只会返回 None ,请问在 python 中怎样实现 shell 那样的函数调用,调取一个函数中的全部内容?
Python新手问题:关于函数的基本用法与常见疑问

8 回复

尴尬了,看不懂。。。


Python函数基础:定义、调用与核心概念

函数是Python中组织代码的基本单元。一个典型的函数定义包括def关键字、函数名、参数列表和冒号,后跟缩进的函数体。

def greet(name, greeting="Hello"):
    """返回一个问候字符串"""
    return f"{greeting}, {name}!"

# 调用函数
result = greet("Alice")
print(result)  # 输出: Hello, Alice!

# 使用关键字参数
result2 = greet(greeting="Hi", name="Bob")
print(result2)  # 输出: Hi, Bob!

关键点解析:

  1. 参数传递:支持位置参数和关键字参数。位置参数按顺序匹配,关键字参数通过参数名指定,顺序可以打乱。
  2. 默认参数:在定义函数时可以为参数指定默认值(如greeting="Hello"),调用时可不传递该参数。
  3. 返回值:使用return语句返回结果,没有returnreturn后无值则返回None
  4. 文档字符串:函数定义后的第一行三引号字符串是文档字符串,用于说明函数功能。

新手常见误区:

  • 可变默认参数陷阱:默认参数值在函数定义时计算一次,而非每次调用时。
    def bad_append(item, lst=[]):  # 错误:所有调用共享同一个列表
        lst.append(item)
        return lst
    
    def good_append(item, lst=None):  # 正确:每次调用创建新列表
        if lst is None:
            lst = []
        lst.append(item)
        return lst
    
  • 变量作用域:函数内部赋值的变量默认为局部变量,要修改外部变量需使用global关键字(通常应避免)。

一句话建议:多写多练,从简单函数开始逐步构建复杂功能。

同没看明白,说的啥意思



比如在 shell 里:
example(){
a=1
}

example

echo $a

运行后输出 1

在 python 里如果不写 return ,返回的值就是 None ,

python 里可以做到 shell 这种形式的函数调用吗 无需写明 return 具体返回值 调用函数中的所有语句

虽然很困难,但是我觉得我肯定猜中了你的意思。我猜你的问题应该是在 python 函数内部给一个临时变量赋值,但是它在函数的外层没法表达出来,除非 return 它,对吗?

如果是的话,解决办法是在赋值 a 的上一行声明一句
<br>global a<br>

全局变量?

ok 是全局变量 明白了 感谢大家

回到顶部