Заменить первый экземпляр объекта в Python - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть проект курса (он завершен, нет, я не прошу, чтобы кто-нибудь сделал работу за меня), он требует от меня обращения экземпляра объекта (firstObj01 (str) -> secondobj02 (str)).Я попытался использовать экземпляр в кортеже, словаре, различных циклах и т. Д. Я нашел метод записи / чтения, который будет делать это для уже известных значений (запись в файл первого экземпляра заменяется вторым экземпляром).Первый код - это код, который я никак не могу изменить.

    #DO NOT MODIFY THE CODE IN THIS FILE
#File: Proj03.py

from Proj03Runner import Runner
import turtle
import random

window = turtle.Screen()
turtle.setup(300,300)

rand = random.randrange(0,2) #get a random number
#set object's colors based on the random number

if(rand%2==0):
    #rand is even
    color01 = "red"
    color02 = "green"

else:
    #rand is odd
    color01 = "green"
    color02 = "red"

objA = Runner(color01) #create one object
objB = Runner(color02) #create a second object

#Call the run method on each object and unpack
# the tuple that is returned.
colorA,turtleA,yourName = objA.run()
colorB,turtleB,yourName = objB.run()

window.title(yourName)

#Manipulate the turtles to draw a picture.
turtleA.color(colorA)
turtleA.forward(50)
turtleA.circle(50)

turtleB.color(colorB)
turtleB.right(180)
turtleB.forward(50)
turtleB.circle(50)

tempTurtle = turtle.Turtle()
tempTurtle.shape("turtle")
tempTurtle.left(90)
tempTurtle.color(color01)
tempTurtle.stamp()

#Pause and wait for the user to dismiss the window.
window.mainloop()

и код, который я разработал:

import turtle
import os
if os.path.exists("floresK909112.txt"):
    os.remove("floresK909112.txt")
    print ("operation performed")

class Runner:   
    def __init__(self, color):
        self.color = color
        self.name = "Flores"

    def turt():
        a = turtle.Turtle("turtle")
        a.pensize(3)
        a.color()
        return a

    def appendB(self):
        b = open("floresK909112.txt", "a")
        b.write(self.color + '\n')
        b.close()

    def readB(self, a):
        b = open("floresK909112.txt", "r")
        line = b.readline()
        count = (len(line))
        if count >5:
            self.color = "red"
            b.close()
            return (self.color, a, self.name)
        else:
            self.color = "green"
            b.close()
            return (self.color, a, self.name)

    def run(self):
        a = Runner.turt()
        b = Runner.appendB(self)
        c = Runner.readB(self, a)

        return c

Опять же, я не ищу никого, кто бы сделал мою домашнюю работу.Есть ли способ сделать это с;теневое копирование, все циклы, кроме цикла while, словаря или любого другого (базового) процесса?Конечный продукт - два круга одного цвета, а черепаха - первый цвет.Код profs требует распаковки двух кортежей, и у большинства процессов, которые я использовал, были проблемы с возвратом нескольких аргументов.(3 аргумента требуется 2 дано), при использовании списков, преобразованных в строки и переданных в кортеже, он не вернул достаточно аргументов.То же самое с двумерным кортежем.Я попытался найти различные формы теневого копирования и другие методы, которые я упомянул, но не смог отнести их к этому сценарию.Я был бы более чем счастлив искать репетиторство в колледже ... однако, я в настоящее время не в стране и не имею никаких других средств.Заранее спасибо:)!

...