你似乎对这些概念有相当不错的掌握。很难找到以通用方式解释信息,特别是像 Python 这样广泛使用的语言。我大多数时候会 echo 你的正确假设,并在途中进行一些微小的调整。
类属性是所有从该类创建的对象共享的特征。例如,如果我们定义了一个 clock
类,我们将定义一个类属性作为时钟中可能的总小时数。
class Clock:
class_hours = 12
它由类的所有实例共享,可以被任何实例访问以供参考。
类实例是我们用来定义从类创建的对象的个体特征的实际数据。再次使用clock
类的示例,这将是我们在代码行中创建时设置时钟的实际小时数(我们还可以引用我们的类属性以确保它在可接受的参数范围内):
class Clock:
class_hours = 12
def __init__(self, hours):
if (hours <= class_hours):
self.hours = hours
请记住,在构造函数中使用if
语句并不是一个好的实践,但这只是为了举例说明。如果您真的想要实现这个例子,您应该使用实例方法来确保小时数在定义的范围内。
实例方法是我们在类中定义的可以操作我们在构造函数中定义的类实例数据的方法。回到clock
的例子中,我们可以定义一个方法来改变时钟的小时、分钟或秒:
class Clock:
class_hours = 12
class_minutes = 60
class_seconds = 60
def __init__(self, hours, minutes, seconds):
self.hours = hours
self.minutes = minutes
self.seconds = seconds
def setTime(new_hour, new_minute, new_second):
self.hours = new_hour
self.minutes = new_minute
self.seconds = new_second
这使我们能够在代码的某个地方更改已经创建的clock
实例。例如,调用clock.setTime(11,49,36)
会将该特定时钟实例设置为11:49:36。
我希望这对您有所帮助,并且尽可能清晰明了。如果我表述不清或者涉及到您不理解的任何术语,请告诉我,以便我可以更新我的答案,让它尽可能清晰。