有没有一种方法可以从类中的用户输入进行追加?

2024-04-28 09:58:20 发布

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

有没有一种方法可以实现用户输入来在我定义的类中创建一个新条目?你知道吗

class Pulsar:
   'Collective base of all Pulsars'
   pulsarCount = 0

   def __init__(self, name, distance):
      self.name = name
      self.distance = distance
      Pulsar.pulsarCount += 1

   def displayCount(self):
     print( "Total Pulsars %d" % Pulsar.pulsarCount)

   def displayPulsar(self):
      print( "Name : ", self.name,  ", Distance: ", self.distance)

"This creates the first object"
pulsar1 = Pulsar("B1944+17", "979 Lightyears")
"This creates the second pulsar in the class"
pulsar2 = Pulsar("J2129-5721", "1305 Lightyears")
pulsar1.displayPulsar()
pulsar2.displayPulsar()
print( "Total Pulsars %d" % Pulsar.pulsarCount)

我希望用户能够输入自己的名称/距离,并将其附加到我当前定义的变量中。你知道吗


Tags: the用户nameself定义defthisclass
2条回答

取决于你对脉冲星对象的处理,一个类可能是杀伤力过大。你知道吗

class Pulsar:
    def __repr__(self) -> str:
        return f'Pulsar({self.name!r}, {self.distance!r})'

    def __init__(self, distance: str, name: str) -> None:
        self.name: str = name
        self.distance: str = distance


num_pulsars_input = int(input('How many pulsars do you wish to create: '))

pulsar_list = []

for _ in range(num_pulsars_input):
    curr_p_name = input('Enter pulsar name: ')
    curr_p_dist = input('Enter pulsar distance: ')
    curr_p = Pulsar(curr_p_name, curr_p_dist)
    pulsar_list.append(curr_p)

print(pulsar_list)
class Pulsar:
   'Collective base of all Pulsars'
   pulsarCount = 0

   def __init__(self, name, distance):
      self.name = name
      self.distance = distance
      Pulsar.pulsarCount += 1

   def displayCount(self):
     print( "Total Pulsars %d" % Pulsar.pulsarCount)

   def displayPulsar(self):
      print( "Name : ", self.name,  ", Distance: ", self.distance)

"This creates the first object"
pulsar1 = Pulsar("B1944+17", "979 Lightyears")
"This creates the second pulsar in the class"
pulsar2 = Pulsar("J2129-5721", "1305 Lightyears")
pulsar1.displayPulsar()
pulsar2.displayPulsar()
print( "Total Pulsars %d" % Pulsar.pulsarCount)

# New code
users_name = input('Your name: ')
distance = input('The distance: ')
pulsar1.name = users_name
pulsar1.distance = distance
# Then you can wrap this in a function if you want

相关问题 更多 >