我正在为库编写一些代码,但我不确定它是否有效。 我应该设置一些变量,比如横摇,俯仰,偏航,油门。 我必须写所有的属性和setter吗? 这是最好的方法吗?你知道吗
@property
def roll(self):
return self._roll
@roll.setter
def roll(self, value):
if(not isinstance(value, int)):
print("You should put the integer number!")
value = int(value)
if value > 100:
value = 100
elif value < -100:
value = -100
self._roll = value
首先,要小心过早地优化代码。当有人试图优化他们的代码时,实际发生的情况往往是,他们在程序中引入了不必要的bug。这并不是说你应该永远不要优化你的代码。当他们显然有空间重组代码以提高效率时,就这样做。但要避免过于“聪明”,盲目地“优化”那些不明显的东西。你知道吗
说了这么多,你的代码看起来不错。您使用的
property
与它应该使用的完全一样;在获取和设置属性的过程中做额外的、必要的工作(通常在设置时更是如此),而不必强迫类的用户使用方法调用。不要太在意效率。只要你不做一些明目张胆低效的事,你就没事。正如@match在评论中所说,使用property
更多的是提供可维护性、稳定性和可读性,而不是效率。你知道吗但是,有几个小的方面可以改进您的代码。即你的类型和界限检查。您可以将其提取到单独的方法中,并在需要时调用它:
相关问题 更多 >
编程相关推荐