gpt4 book ai didi

python - 警察类中的 Tick 方法

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:40 25 4
gpt4 key购买 nike

我的问题涉及创建一个 tick 程序,原始的 tick 程序使一个名为 PoliceOfficer 的类逮捕他周围的每个人。

def tick(self):
# next time step for all objects that tick
for t in self.__things:
obj = self.get_thing(t)
if has_method(obj, "tick"):
obj.tick()

这是原始的 tick 方法。

这是我的 PoliceOfficer 类和称为 arrest 的方法。逮捕方法是根据他们在警察区域时没有穿任何衣服来逮捕某人,而当没有人可以逮捕时,他只是说些别的。

class PoliceOfficer (Person):    
def __init__(self, name, jail):
Person.__init__(self, name)
self.set_restlessness(0.5)
self.__jail = jail
def arrest (self, Person):
if self.location.name is Person.location.name:
self.say (Person.name + "You're under arrest!")
self.say ("You have the right to shut up and lay on the ground with your hands behind your back")
Person.name(Place("jail")
else:
return self.say (Person.name + "Ain't got nothing to do damnit")
def tick (self):
if isinstance(t, Student):
if Student.is_dressed = False:
arrest.student
else:
(Person)tick(): self.say("Shoot no one to arrest off to the 7 eleven")

我为 PoliceOfficer 制作自己的 tick 方法是否部分正确?如果不是,除了让警察逮捕任何未穿衣服的学生外,我还需要做些什么或改变什么才能使它像描述的打勾方法一样?

最佳答案

嗯,...你想测试一个对象是否属于某个类? Python 有一个内置函数:isinstance()。快速示例:

>>> isinstance(1, int)
True
>>> isinstance("Hello World!", int)
False
>>> isinstance("Hello World!", str)
True

查看文档以获取更多信息。 http://docs.python.org/library/functions.html#isinstance

根据 delnan 的“建议”,有一点建议:与其检查你收到的 Person 背后的类,不如让 Person 实现一个 canBeArrested() 子类可以覆盖的方法,Student 可以返回 false。

class Person(object):
(...)
def canBeArrested(self):
return True

class Diplomat(Person):
(...)
def canBeArrested(self):
# Overrides Person's default behaviour
return False

关于python - 警察类中的 Tick 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5409879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com