这是我正在运行的代码:
def infinite_Third() -> Generator:
num = 1
while True:
if num % 3 ==0:
i = (yield num)
if i is not None:
num = i
num += 1
if __name__=='__main__':
third_gen = infinite_Third()
for i in third_gen:
print(f"it is {i}")
if i>1000:
break
third_gen.send(10*i+1)
Run Code Online (Sandbox Code Playgroud)
我希望看到的结果是:
it is 3
it is 33
it is 333
it is 3333
Run Code Online (Sandbox Code Playgroud)
然而,我真正得到的是:
it is 3
it is 36
it is 366
it is 3666
Run Code Online (Sandbox Code Playgroud)
我认为这可能与send在主代码中使用有关,但无法弄清楚原因。任何人都可以帮忙吗?
我有以下代码:
class Vehicle:
def __init__(self, name=None, color='Red', make='Toyota'):
self._name = name
self._color = color
self._make = make
@property
def name(self):
if self._name is None:
return 'name is none'
return self._name
@name.setter
def name(self, value):
self._name=value
def getColor(self):
return self._color
def getMake(self):
return self._make
class Car(Vehicle):
def __init__(self, mode='Running', *args, **kwargs):
super().__init__(self, *args, **kwargs)
self._mode=mode
def getMode(self):
return self._mode
Run Code Online (Sandbox Code Playgroud)
我想启动汽车的名称,但是以下都不起作用。有没有简单的方法来做到这一点?
mycar=Car('Corolla')
mycar=Car(name='Corolla')
Run Code Online (Sandbox Code Playgroud)