动态地将对象传递给 class 方法
Passing object into class method dynamically
我正在尝试传入一个对象,以便它可以通过定义的方法进行修改 infection
。但是,当我确实传递它时,如下所示,它只传递一次。这是我第一次制作动态对象,所以我不太确定如何让它继续下去。
class Region:
def __init__(self, name, population, cases, deaths):
self.name = name
self.population = population
self.cases = cases
self.deaths = deaths
print(name, cases)
def infection(self, name, population, cases):
while population > cases:
cases = cases + 1
return (cases)
westernEurope = Region("Western Europe", 1000000, 0, 0)
print(westernEurope.infection("Western Europe", 1000000, 0))
我想要发生的是感染方法应该一直递增直到达到病例数,但我还需要能够打印每次递增。非常感谢任何帮助。
您的代码有缩进问题。
这应该可以满足您的要求:
class Region:
def __init__(self, name, population, cases, deaths):
self.name = name
self.population = population
self.cases = cases
self.deaths = deaths
print(name, cases)
def infection(self, name, population, cases):
while population > cases:
cases = cases + 1
print(cases)
return (cases)
westernEurope = Region("Western Europe", 1000000, 0, 0)
print(westernEurope.infection("Western Europe", 1000000, 0))
因为return立即终止了函数的运行,所以函数中不要有while循环,而是在你的main区,像这样:
def infection(self, name, population, cases):
cases = cases + 1
while population > cases:
infection(pass all parameters)
Infection() 更改 class 属性案例并在每个循环中打印它
class Region:
def __init__(self, name, population, cases, deaths):
self.name = name
self.population = population
self.cases = cases
self.deaths = deaths
def infection(self):
while self.population > self.cases:
self.cases += 1
print(self.name, self.cases)
westernEurope = Region("Western Europe", 100, 0, 0)
westernEurope.infection()
我正在尝试传入一个对象,以便它可以通过定义的方法进行修改 infection
。但是,当我确实传递它时,如下所示,它只传递一次。这是我第一次制作动态对象,所以我不太确定如何让它继续下去。
class Region:
def __init__(self, name, population, cases, deaths):
self.name = name
self.population = population
self.cases = cases
self.deaths = deaths
print(name, cases)
def infection(self, name, population, cases):
while population > cases:
cases = cases + 1
return (cases)
westernEurope = Region("Western Europe", 1000000, 0, 0)
print(westernEurope.infection("Western Europe", 1000000, 0))
我想要发生的是感染方法应该一直递增直到达到病例数,但我还需要能够打印每次递增。非常感谢任何帮助。
您的代码有缩进问题。
这应该可以满足您的要求:
class Region:
def __init__(self, name, population, cases, deaths):
self.name = name
self.population = population
self.cases = cases
self.deaths = deaths
print(name, cases)
def infection(self, name, population, cases):
while population > cases:
cases = cases + 1
print(cases)
return (cases)
westernEurope = Region("Western Europe", 1000000, 0, 0)
print(westernEurope.infection("Western Europe", 1000000, 0))
因为return立即终止了函数的运行,所以函数中不要有while循环,而是在你的main区,像这样:
def infection(self, name, population, cases):
cases = cases + 1
while population > cases:
infection(pass all parameters)
Infection() 更改 class 属性案例并在每个循环中打印它
class Region:
def __init__(self, name, population, cases, deaths):
self.name = name
self.population = population
self.cases = cases
self.deaths = deaths
def infection(self):
while self.population > self.cases:
self.cases += 1
print(self.name, self.cases)
westernEurope = Region("Western Europe", 100, 0, 0)
westernEurope.infection()