关于结构体变量传递的这个问题,这个题目也是作者第一次遇见这个问题,大概的意思就是:当类中的变量和函数当中的参数调用的参数变量相互重复的时候,原则上是函数参数当中的变量优先级要更高一些。
可能听起来有点懵懂,我们来看下具体的例子应该就会明白了。
# 结构体变量传递
if __name__ == '__main__': # 程序入口
class student: # 定义一个student的类
x = 0 # 将0赋值给x
c = 0 # 将0赋值给c
def f(stu): # 定义一个函数f,并对函数f,传递一个stu的参数
stu.x = 20 # 将20赋值给stu的x变量
stu.c = 'c' # 将字符串c赋值给stu的c变量
a = student() # 将student的类方法(函数)赋值给a
a.x = 3 # 将3赋值给a中的x方法
a.c = 'a' # 将a赋值给a中的c方法
f(a) # 将a这个变量作为参数,传递给f函数,调用的是f这个函数的方法
print(a.x,a.c) # 打印出变量a的x方法,和c方法
打印出来的结果如下所示:
C:\Python\python.exe "C:/Users/Administrator/Desktop/Python 练习实例100题/练习87.py"
20 c
Process finished with exit code 0
北京市通州区京贸中心
2020年6月27日