python에서 클래스를 만들고 오버로딩(overloading)을 해볼려고 했더니.. 응?
'Duplicated signature' 라고 뜬다. (현재 python 2.7 + eclipse 사용)
오버로딩이 안되나보다
방법은?
오버로딩은 아니지만, 함수의 argument를 다양한 타입으로 여러개를 받을 수 있도록 할 수 있다.
class test:
def function(self, *arglist):
print arglist
print arglist[0]
사용할 때는
function('a',1.0, (1,2))
그냥 함수 호출하면 된다.
arglist[0] = 'a'
arglist[1] = 1.0
arglist[2] = (1,2)
로 들어가 있을 것이다.
좀더 advanced하게 사용하려면..
def function(self, *arglist):
'Duplicated signature' 라고 뜬다. (현재 python 2.7 + eclipse 사용)
오버로딩이 안되나보다
방법은?
오버로딩은 아니지만, 함수의 argument를 다양한 타입으로 여러개를 받을 수 있도록 할 수 있다.
class test:
def function(self, *arglist):
print arglist
print arglist[0]
사용할 때는
function('a',1.0, (1,2))
그냥 함수 호출하면 된다.
arglist[0] = 'a'
arglist[1] = 1.0
arglist[2] = (1,2)
로 들어가 있을 것이다.
좀더 advanced하게 사용하려면..
def function(self, *arglist):
if not arglist:
print 'no arguments'
return
else:
for i,arg in enumerate(arglist):
if type(arg)==list:
print arg
elif type(arg)==str:
print arg
argument를 하나씩 불어와서 type에 따라 다르게 처리해야 할 경우에 저렇게 사용하면 된다.
argument를 하나씩 불어와서 type에 따라 다르게 처리해야 할 경우에 저렇게 사용하면 된다.
'Skill up > Programming' 카테고리의 다른 글
eclipse에서 boost 사용하는데 에러가 난다.. (0) | 2013.02.18 |
---|---|
eclipse에서 c++0x 설정 (0) | 2013.02.15 |
[python]numpy에서 표준분포로 random 수 생성 (0) | 2011.11.15 |
JAVA Thread 동기화 방법 (0) | 2010.06.14 |
JAVA 쓰레드 생성 방법 (0) | 2010.06.14 |