我正试图找出一个非常简单的问题,但我仍然不太明白一个类是如何工作的。例如,如果我想创建一个名为“Friend”的类,其中包含一个名为“name”的属性,这是否意味着我必须先给出一个名为“name”的变量?那么如何定义构造函数来允许“name”的规范呢?这代码是胡说八道吗?提前感谢您的回复
class Friend:
def __init__(self,name):
self.set_name(name)
def set_name(self,name):
self.name=name
def get_name(self):
return self.name
这段代码不是胡说八道,因为它完成了您想要完成的任务。不过,这不是很像Python。没有理由使用getter或setter。直接访问属性即可。就像
你可以通过
friend = Friend('jeremy')
现在直接访问
name
print friend.name # jeremy
有很多关于python类的知识需要学习,幸运的是python为您所使用的任何版本提供了优秀的documentation。你知道吗
在这个例子中,要创建一个新的朋友,你需要用一个名字来实例化它。你知道吗
您所指的是默认关键字参数。在示例中指定它的方式意味着构造函数中需要
name
。使其成为默认值(并且可以在构造函数之后设置)的方法如下所示:现在可以不使用名称实例化类:
正如在评论中所建议的,基本属性的setter和getter并不“被认为是pythonic”。但是,如果该属性需要计算,则可以将其设置为属性:
相关问题 更多 >
编程相关推荐