2017-01-28 2 views
1

나는 이것이 매우 바보 같은 질문이지만, 어떤 답을 찾지 못했다는 것을 알고있다. 꽤 긴 정의로 함수를 작성했습니다.여러 거북이에게 작용하는 함수

나는 거북이 야. p = turtle.Turtle()q = p.clone().

def scoregraph(): 
    start = pos() 
    color("silver") 
    pd() 
    rt(90) 
    fd(20) 
    lt(90) 
    fd(200) 
    rt(90) 
    fd(20) 
    rt(90) 
    fd(200) 
    rt(90) 
    fd(60) 
    rt(90) 
    fd(200) 
    lt(90) 
    fd(20) 
    lt(90) 
    fd(200) 
    rt(90) 
    fd(20) 
    color("black") 
    fd(6) 
    rt(90) 
    fd(200) 
    rt(90) 
    fd(6) 
    rt(90) 
    fd(200) 
    lt(90) 
    fd(60) 
    lt(90) 
    fd(200) 
    rt(90) 
    fd(60) 
    rt(90) 
    fd(200) 
    rt(90) 
    fd(60) 
    bk(66) 
    rt(90) 
    fd(200) 
    lt(90) 
    fd(126) 
    pu() 
    goto(start) 
    rt(90) 
    pd() 

나는 두 거북이 (p.scoregraphq.scoregraph)의 기능을 사용하려고하지만 그것은 작동하지 않습니다.

두 개의 개별 기능을 정의 할 수 있습니까?

def scoregraph(t): 
    start = t.pos() 
    t.color("silver") 
    t.pd() 
    t.rt(90) 
    t.fd(20) 
    # etc 

는 다음과 같이 전화 :

+1

코드를 입력하십시오. See [ask]. –

+0

파이썬이 java와 같은 것이라면 단순히 터틀에 메소드를 추가하십시오. 그냥 p.method()와 q.method()를해라. – DeepS1X

답변

4

scoregraph() 함수에 Turtle 개체를 전달할 좀 더 객체 지향 스타일을 원하는 경우

p = turtle.Turtle() 
q = p.clone() 
scoregraph(p) 
scoregraph(q) 

을 또는에서 자신의 클래스를 파생 Turtle이고 scoregraph() 방법을 제공하십시오. 거북이 메서드를 호출하려면 self을 사용하십시오.

class MyTurtle(turtle.Turtle): 
    def scoregraph(self): 
     self.start = self.pos() 
     self.color("silver") 
     self.pd() 
     self.rt(90) 
     self.fd(20) 
     # etc 

p = MyTurtle() 
q = p.clone() 
p.scoregraph() 
q.scoregraph() 
+0

내 질문에 답해 주셔서 감사합니다. 귀하의 회신 또는 적어도 첫 번째 부분을 읽기 전에 내가 소유하고 있을지도 모른다고 생각할 수도 있고하지 않을 수도 있지만 두 번째 부분은 유용하게 보입니다. 고맙습니다! –

관련 문제