이 사용 사례에서 논의할 내용은 함수 매개변수 전달에 관한 것입니다.
제가 사용하는 Python 버전은 3.3.2입니다.
함수:
1
2
3
4
5
6
7
8
def fun(arg):
print(arg)
def main() :
fun('hello,Hongten')
if __name__ == '__main__':
main()
fun() 함수에 매개변수를 전달하면 전달된 매개변수 값 정보를 출력할 수 있습니다.
여기에 인쇄된 정보는 다음과 같습니다.
hello,Hongten
다음 사용 사례의 경우:
1
2
3
4
5
6
7
8
9
def fun(a=1, b=None, c=None, *args):
print('{0},{1}, { 2},{3}'.format(a, b, c, args))
def main():
fun(a='one' )
fun('one')
if __name__ == '__main__':
main()
전달된 매개변수가 fun(a='one') 및 fun('one')인 경우 값이 매개변수 a에 복사되고 두 매개변수의 효과는 동일합니다. :
one,None,None,()
one,None,None,()
물론 매개변수도 지정할 수 있습니다: b,c,* 인수 할당
예:
1
2
3
4
5
6
7
8
def fun(a=1, b=None, c=None, * args ):
print('{0},{1},{2},{3}'.format(a, b, c, args))
def main():
fun('one',1,2,('hongten'))
if __name__ == '__main__':
main()
이런 방식으로 매개변수 b, c, args에 값을 할당합니다
작동 효과:
one,1,2,('hongten',)
위의 예에서는 매개변수 *args 앞에 있는 매개변수 a, b, c를 우회하고 복사할 수 없습니다. *args로 변환:
예:
def fun(a=1, b=None, c=None, *args): print('{0},{1},{2},{3}'.format(a, b, c, args)) def main(): fun(args=('hongten')) if __name__ == '__main__': main()
작동 효과:
추적(가장 최근 호출 마지막 ):
파일 "E:/Python33/python_workspace/test_fun.py", 21행,
main()
파일 "E:/Python33 /python_workspace/test_fun.py ", 18행, 메인
fun(args=('hongten'))
TypeError: fun()에 예상치 못한 키워드 인수 'args'가 있습니다
그러나 매개변수의 경우 a, b, c는
def fun(a=1, b=None, c=None, *args): print('{0},{1},{2},{3}'.format(a, b, c, args)) def main(): fun(c=('hongten'), b=2, a=[1,2,3]) if __name__ == '__main__': main()
과 같은 방식으로 할당할 수 있습니다. 효과:
[1, 2, 3],2,hongten,()