python函数参数为对象时,如何使用?

  • Post category:Python

Python 中的函数参数可以是任何类型的对象,包括数字、字符串、列表、元组和字典等。当我们定义一个函数时,可以在函数定义中使用函数参数,以便在调用函数时将对象传递给函数。

函数参数为对象的使用方法

在 Python 中,向函数传递参数的方式有两种:传递对象的引用和传递对象的值。当函数使用对象引用时,函数中对对象的修改也会影响到主调函数中的对象。当函数使用对象的值时,函数中对对象的修改不会影响到主调函数中的对象。

以下是一个简单的例子,展示了如何使用函数参数为对象:

def change_list(mylist):
    "修改传递进来的列表"
    mylist.append([1,2,3,4])
    print ("函数内取值: ", mylist)
    return

# 调用 change_list 函数
mylist = [10,20,30]
change_list(mylist)
print ("函数外取值: ", mylist)

在这个例子中,我们定义了一个名为change_list的函数,接收一个列表作为参数。在函数内部,我们使用append函数向传入的列表中添加了另一个列表,然后打印出修改后的列表。接着返回到主调函数,继续打印列表值。

这个例子调用了change_list函数,并传递mylist作为参数。在函数内部,我们修改了传递进来的列表,并打印输出。在主调函数中,我们也打印输出了这个列表,可以看到修改后的值。这说明,函数中对传递的列表进行的修改,在主调函数中也可以看到。

在使用函数参数为对象时,需要注意一下几点:

  • 是否需要在函数内部修改对象?
  • 如果需要修改对象,是否需要保存原始对象?
  • 是否需要在主调函数中访问该对象的修改结果?

示例1:Python函数参数为对象的使用

以下的代码展示了另一个例子,说明了如何使用函数参数为对象:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

def change_age(p):
    "修改Person对象的年龄"
    p.age += 1

# 实例化一个Person对象
person = Person("张三", 25)

# 调用change_age函数
change_age(person)

# 输出年龄修改后的值
print(person.age)

在这个例子中,我们定义了一个名为Person的类,并在其中定义了一个名为change_age的函数。change_age函数接收一个Person对象作为参数,并将这个人的年龄加1。

我们创建了一个名为personPerson对象,并调用了change_age函数。然后,我们打印了年龄修改后的值。

输出结果为:26

这意味着,通过函数参数,我们成功地使用对象来修改了person对象的年龄。

示例2:使用可变对象作为参数

以下代码示例展示了使用可变对象作为函数参数的情况:

def change_dict(d):
    "修改传入的字典"
    d['name'] = 'Tom'
    d['age'] = 25

# 定义字典类型对象
person_dict = {'name':'Jack', 'age':20}

# 调用change_dict函数
change_dict(person_dict)

# 输出修改后的字典
print(person_dict)

这个例子中,我们定义了一个名为change_dict的函数,将一个字典对象作为参数。在函数内部,我们向这个字典中添加了新的键值对 'name':'Tom''age':25。然后,我们在主调函数中打印了该字典对象。可以看到,字典对象已经被修改。

输出结果为:{‘name’: ‘Tom’, ‘age’: 25}

所以,我们可以通过将可变对象作为函数参数传递,实现在函数内部修改对象的目的。

结论

Python 中的函数参数可以是任何类型的对象。可以在函数定义中使用这些参数,并将对象传递给函数。在函数内部,可以修改对象,并返回修改后的结果。在主调函数中可以访问这些对象的修改结果。