2017-11-08 2 views
0

빈 인수는 내가 2 개 개의 인수를 취하는 내 스크립트에서 함수를 가지고 파일에 결과를 저장합니다파이썬 - 기능

def listing(val, ftype): 

    with open(sys.argv[3], "a+") as myfile: 
     myfile.write(val + ftype + '\n') 
    return 

을하지만 난 단 하나의 인수가 제공 될 때 그것을 사용하려고합니다. 인수를 빈 문자열 ''처럼 정의 할 수 있습니다.

listing('', '\n[*]Document files found:\n') 

빈 인수를 처리하는 유일한 방법입니까?

+0

인수가 선택 사항 인 경우는, 함수 선언은 이렇게 말해야한다 :'데프리스트 (FTYPE, 발 = 없음)'. 함수가 내부적으로 값을 처리하는 방법은 사용자가 결정합니다. – deceze

+0

당신의 함수에서'sys.argv [3]'을 사용하면 안됩니다. –

답변

2

당신은이 목적을 위해 기본 인수를 사용할 수

사용하여 기본 인수

def listing(val, ftype=''): 

    with open(sys.argv[3], "a+") as myfile: 
     myfile.write(val + ftype + '\n') 
    return 

콜링 : listing('\n[*]Document files found:\n') # need not give second argument

또한 가변 수를 취함으로써이 더 일반적인 기능 만들 수 인수

콜링

def listing(*args): 
    with open(sys.argv[3], "a+") as myfile: 
      myfile.write("".join(args) + '\n') 
    return 
: listing('String1','String2','String3')

+2

그렇다면'myfile.write ("". join (args) + '\ n')'는 끔찍한 루프보다 낫다. –

+0

그래, 맞아. 나는 그 부분을 업데이트 할 것이다. 감사합니다 –

+0

고마워요, 일반 vesion 내 요구를 위해 최선을 다하고, 나는 두 개 이상의 인수 도이 함수를 재사용 할거야, 다시 한번 많이 감사드립니다! – imperato