2014-11-05 2 views
1

그래서 함수로 문자열로 정의되지 않은 문자 시퀀스를 입력으로 받아들이고 함수를 자동으로 해석하도록 만들려고합니다. 예를 들어 문자열로 : 지금함수의 인수를 문자열로 변환하는 방법

def printstring(sequence_of_characters): 
    a=str(sequence_of_characters) 
    print(a) 

나는 실행하면

'hello' 
,369 :

printstring(hello) 

나는 출력 단자를 기대

는 대신 내가 "안녕하세요"에 printstring 전화를 단지 수 있다는 걸 이제

Traceback (most recent call last): 
    File "<pyshell#7>", line 1, in <module> 
     printstring(hello) 
NameError: name 'hello' is not defined 

를 출력하지만 함수가 이미 문자열이 입력을 할 수 있도록하려면, 그리고 단지 순서 . 모든

+2

U가 printstring ("hello")으로 호출해야합니다. – Srinath

+0

@Srinath가 말한 것과 플러스 ('sequence_of_characters ')를 인쇄 할 수 있습니다. – martineau

+0

문자 시퀀스는 정의상 문자열입니다. – etheranger

답변

0

귀하의 문제는 귀하의 sequence_of_characters이 이미 개체 또는 변수 여야한다는 것입니다. hello은 할당되지 않은 변수입니다. 원하는대로 작동하는 유일한 객체는 int 또는 float 또는 long과 같은 숫자 형식 일 수 있습니다.

기본적으로 hello은 작동 할 숫자와 동등한 변수 여야합니다. 그걸 무언가에 할당하지 않을 방법이 없습니다.

+0

이렇게하려면이 문제를 해결할 방법이 없습니까? –

+0

무엇을 의미합니까? – AHuman

+0

@ A-P 아니요 – KodyVanRy

0

첫째로 당신은 (그들을 결코 잊지 않을)

파이썬이 인수를 괄호없이 인쇄하는 것은 100 % 불가능하다 괄호 printstring("hello")로를 호출해야합니다. 괄호를 포함하지 않으면 객체 또는 메소드처럼 취급합니다.

이 때문에 클래스를 문자열로 지정하려고합니다.

그래서 수업이 있다고합시다.

class Hello: 
    pass 

당신은

Hello = Hello() 

그것은 대신 그런 식으로 작동하지 않습니다 할 수 없습니다. sequence_of_characters를 변경할 수 없기

def printstring(sequence_of_characters): 
    sequence_of_characters=str(sequence_of_characters) 
    print(sequence_of_characters) 

은 문자열이고 당신이하고있는 모두를 재 할당된다.

+3

FYI :'String'은 (는) 객체가 아닙니다. – AHuman

관련 문제