如何让类函数在python中自我重复?

2024-05-21 03:08:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让这个代码重复它自己,这样我的程序永远不会关闭。在

    import os
    print "Unesite navedene informacije za ucenika"
    class Ucenik1(object):
      """docstring for Ucenik1"""
        def __init__(self,  ime, prezime, razred, godiste, struka, dodatne_info):

             self.ime = ime
             self.prezime = prezime
             self.razred = razred
             self.godiste = godiste
             self.struka = struka,
             self.dodatne_info = dodatne_info

        def informacije_ucenika(self):
            my_list = [self.ime , 
                       self.prezime, 
                       self.razred, 
                       self.godiste, 
                       self.struka,
                       self.dodatne_info
               ]
         list = open("text.txt", "w")
         for item in my_list:
             list.write(str(item) + "\n")

         list.close()
         os.rename("text.txt", self.ime)

ucenici1 = Ucenik1(raw_input(str("Unesite ime")), raw_input(str("Unesite             prezime")), raw_input(str("Unesite razred")), raw_input(str("Unesite godiste")),                    raw_input(str("Unesite struku")), raw_input(str("Unesite dodatne informacije")))

ucenici1.informacije_ucenika()

它基本上是一个收集学生信息并存储到文件中的程序。 它工作得很好,但我想让它重复它自己,这样你就不必每次你想做一个文件运行.exe。 在网上我发现我可以使用while循环,但我不能让它在课堂上工作。 注意:这里有一些缩进错误,但在我的编辑器中一切正常


Tags: selfinfoinputrawliststrimeprezime
3条回答

这取决于你想重复哪部分代码。 如果您想添加一个学生并将其无限地保存到文件中,您可能应该将

while True:
    ucenici1 = Ucenik1(...)
    ucenici1.informacije_ucenika()

关于while循环下语句的缩进间距(PyCharm等编辑器应该为您这样做,如果您写出来的话;通常是四个空格或使用TAB代替)。所以最后两个陈述会重复。在

这是您的代码,但是有一个while True循环:

import os
print "Unesite navedene informacije za ucenika"
class Ucenik1(object):
  """docstring for Ucenik1"""
    def __init__(self,  ime, prezime, razred, godiste, struka, dodatne_info):

         self.ime = ime
         self.prezime = prezime
         self.razred = razred
         self.godiste = godiste
         self.struka = struka,
         self.dodatne_info = dodatne_info

    def informacije_ucenika(self):
        my_list = [self.ime , 
                   self.prezime, 
                   self.razred, 
                   self.godiste, 
                   self.struka,
                   self.dodatne_info
           ]
     list = open("text.txt", "w")
     for item in my_list:
         list.write(str(item) + "\n")

     list.close()
     os.rename("text.txt", self.ime)

while True:
    ucenici1 = Ucenik1(raw_input(str("Unesite ime")), raw_input(str("Unesite             prezime")), raw_input(str("Unesite razred")), raw_input(str("Unesite godiste")),                    raw_input(str("Unesite struku")), raw_input(str("Unesite dodatne informacije")))

    ucenici1.informacije_ucenika()

问题的简单答案是包装while循环中运行的代码行(正如您所怀疑的那样是解决方案)。在

while True:
    ucenici1 = Ucenik1(raw_input(str("Unesite ime")), raw_input(str("Unesite             prezime")), raw_input(str("Unesite razred")), raw_input(str("Unesite godiste")),                    raw_input(str("Unesite struku")), raw_input(str("Unesite dodatne informacije")))

    ucenici1.informacije_ucenika()

还有许多其他的改进也可以提出建议,比如不必使用str将字符串转换为字符串,使用所需的名称打开文件,而不是重命名它,以及不使用list作为变量名,因为list是python关键字。在

相关问题 更多 >