函数

函数 #

定义函数 #

def hello():
    return 'hello'

调用函数

print(hello())

变参 #

Python 使用 * 表示变参,变参是被保存在数组中进行传递的

def sum(*n):
    result = 0
    for i in n:
        result += i
    return result

调用变参函数

sum(1, 2, 3)

参数默认值 #

def say(name, word='hello'):
    print(name, ', ', word)

say('Peter') # => Peter, hello

返回值 #

Python 中使用 return 返回函数的执行结果。除了单一结果外,Python 也支持返回多个结果。

返回单个结果

def add(x, y):
  return x + y

add(1, 2) # => 3

返回多个结果

def triple(x, y, z):
  return x * 3, y * 3, z * 3
end

x, y, z = triple(1, 2, 3) # => x=3, y=6, z=9

关键字参数 #

关键字参数可以在调用时通过名称指定参数值而不用按照定义的顺序

def say(name, word='hello'):
    print(name, ', ', word)

print(say(word='how are you', name='Peter'))

函数文档 #

函数文档用于定义函数的注解,声明在函数的定一行,本质只是一个普通的字符串。

def add(x, y):
    """add two numbers"""
    return x + y

可以通过以下两种方式显示某个函数的函数文档信息

print(add.__doc__)

help(add)

全局变量 #

Python 中函数中定义的变量只在函数的作用域有效。只要函数中定义了变量无论在哪行,在函数中都只会引用该局部变量。和 JavaScript 一样属于词法作用域。

num = 100
m = 200

def declare10():
    # print(num)  未定义错误
    num = 10
    print(m)  # 200

declare10()
print(num)  # 100

可以通过 global 指定需要引用的是外部变量而不是局部变量

def declare5():
    global num
    num = 5


declare5()
print(num)  # 5

静态方法与类方法 #

静态方法使用 @staticmethod 声明,类方法使用 @classmethod 声明,两者基本类似,只是静态方法无需任何参数,类方法需要类本身作为参数。

class StrUtils:
    @staticmethod
    def sort_words(words):
        return sorted(words)

    @classmethod
    def cout(cls):
        print(cls)

print(StrUtils.sort_words([3, 2, 1]))
沪ICP备17055033号-2