有没有一种方法可以实现用户输入以在我定义的此类中创建一个新条目?
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)
我希望用户能够输入自己的名称/距离并将其附加到我当前定义的变量中。
取决于您对Pulsar对象的处理方式,一个类可能会过大。
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