2012-04-06 2 views
0

main에서 r의 내용을 저장하고 두 개로 전달하는 방법은 무엇입니까? 만약 r = 무언가를 고정하면 r을 출력 할 것입니다.하지만 r에 변수 내용을 어떻게 넘겨 줘야하나요? random.getstate/setstate를 시도했지만 "subscriptable이 아닌 function object"를 말하고있었습니다.python 3.2 함수 사이의 변수에 데이터를 전달하는 방법

import random 
from random import randrange 

def main(): 
    r = random.randrange(1,13,1) 
    print (r) 

r = random.randrange(1,13,1) 


def two(): 
    if r==7 or r==11: 
     print (r) 
    else: 
     print (r) 

    main() 
    two() 
+0

어떻게'random.getstate'에 대해 알았습니까? 그것은 전혀 관련이 없습니다. 함수간에 정보를 전달하는 방식은 함수가하는 것과 상관없이 똑같습니다. 그리고 여러분이'random' 모듈을 사용하고 있다는 사실과 전혀 관련이 없으므로, 왜 거기에서 파고 들어가서 찾을 수 있는지 이해하지 못합니다 도움이 될만한 어떤 것. 모듈을 가져 와서 다른 사람의 코드로 작업하기 전에 먼저 학습해야하는 프로그래밍 기본 사항입니다. 그렇습니다. 처음에는 매우 제한된 것들을 쓰는 것을 의미합니다. –

+0

@KarlKnechtel 저는 실제로이 코드를 직접 작성했습니다. 파이썬 프로그래밍 클래스를 사용하고 있습니다. 그래서 파이썬 문서를 보았을 때 다른 사람의 코드를 사용한다는 가정을 이해하지 못했습니다. 다음에 생각하기에 앞서 생각하십시오. 그것은 불쾌합니다. – user1316212

답변

1

글쎄, 상황에 따라, 당신이 중 하나가 클래스를 만들거나 데이터를 반환하고 후자는 예를 들어, 당신은 당신의 코드 주어진 원하는 아마, 그래서, 인수로에 전달하려는 : 이것은 당신이 엔티티로 정의 할 수있는 일 이내에 발생하는 경우

def main(): 
    ... 
    r = do_something() 
    ... 
    return r 

def two(r): 
    ... 
    do_something_else(r) 
    ... 

r = main() 
two(r) 

, 당신은 수업 시간에 그것을 할 수 :

class Main(): 
    def main(self): 
    ... 
    self.r = do_something() 
    ... 

    def two(self): 
    ... 
    do_something_else(self.r) 
    ... 

main = Main() 
main.main() 
main.two() 

그러나,이 경우, 이것은 당신이 교류를 만드는 불필요한입니다 정말로 아무것도 캡슐화하지 않는 나른함.

+0

수업에 대한 도움과 의견을 보내 주셔서 감사합니다. – user1316212

+0

이 질문에 대한 답변이 있으면 걱정할 필요가 없습니다. [수락] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235). –

2

를 사용하여 반환 값과 함수 매개 변수 :

import random 
from random import randrange 

def main(): 
    r = random.randrange(1,13,1) 
    return r 

def two(r): 
    if r==7 or r==11: 
     print (r) 
    else: 
     print (r) 

r = main() 
two(r) 

기능 main는 임의의 값을 계산 한 후 호출 한 곳으로 반환합니다. 그런 다음 반환 값을 변수에 저장할 수 있습니다 (r = main()). 그래도 r이라고 부를 필요는 없지만 다른 이름을 지정할 수도 있습니다.

는 매개 변수로 전달할 수 two에 값을 전달합니다. def two(r):에서 볼 수 있듯이 two 함수는 매개 변수 ( r이라고도 함)를 기대하며 해당 함수에서 사용됩니다. 다시 말하지만,이 이름은 r 일 필요는 없지만 동일한 이름을 사용하는 것이 적합합니다.

+0

@lattyware 감사합니다. 정말 잘됐다! – user1316212

+0

그리고 설명 주셔서 감사합니다! – user1316212

관련 문제