当Python函数参数为对象时,可以通过几种不同方式来使用:
- 直接操作对象的属性或方法
通过函数参数直接访问或修改对象的属性或方法。
示例代码:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def print_person_info(person):
print(f"Name: {person.name}")
print(f"Age: {person.age}")
person1 = Person("John", 25)
print_person_info(person1)
解释:这里定义了一个Person类,有两个属性name和age,然后定义了一个打印Person信息的函数print_person_info,其中函数参数person即为一个Person对象。在函数中,可以直接通过person.name和person.age来访问Person对象的属性。
- 将对象作为参数传递给其他函数
将函数参数对象作为参数传递给其他函数进行操作。
示例代码:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def calculate_person_salary(person):
salary = person.age * 1000
return salary
def print_person_salary(person):
salary = calculate_person_salary(person)
print(f"{person.name}'s salary is ${salary}')
person1 = Person("John", 25)
print_person_salary(person1)
解释:这里定义了一个计算Person薪水的函数calculate_person_salary和一个打印Person薪水的函数print_person_salary,两个函数参数都是一个Person对象。在函数calculate_person_salary中,可以直接通过person.age来访问Person对象的属性。在函数print_person_salary中,将Person对象作为参数传递给calculate_person_salary,然后将计算出的薪水值和Person的名字打印出来。
需要注意的是,当函数参数为对象时,实际上传递的是对象的引用。因此,在函数内对对象进行修改,会影响到原始对象。如果不想改变原始对象,可以在函数内部使用对象的浅拷贝或深拷贝。