【发布时间】:2013-02-28 13:25:28
【问题描述】:
我有以下课程:
class Point(object):
__slots__= ("x","y","z","data","classification")
def __init__(self,x,y,z,n=None):
self.x = float(x)
self.y = float(y)
self.z = float(z)
self.data = [self.x,self.y,self.z]
def set_classification(self,n):
self.classification = n
p = Point(10,20,30)
p.data
[10.0, 20.0, 30.0]
p.set_classification(0)
p.data
[10.0, 20.0, 30.0]
我有以下问题:
首先,创建Point对象的参数是x,y和z。 Classification 是一个附属参数(有时是文件内的报告其他没有)。如果可能的话,我希望找到一种方法
p.data = [10.0, 20.0, 30.0, 50.0](设置分类时)或p.data = [10.0, 20.0, 30.0](未设置分类时)。
其次,我用set_classification
def set_classification(self,n):
self.classification = n
这是正确的 Python API 风格吗?看了几篇论坛帖子,还是一头雾水。
【问题讨论】:
-
您可以在设置后立即在您的
set_classification方法中添加if(self.classification == 1): self.data.append(50) -
请注意,如果您只是学习 Python,我非常怀疑您是否需要
__slots__。这是一项高级功能,只有知道自己在做什么的人才能使用。 -
Thnaks Daniel,我正在关注一些我在互联网上阅读的示例,我希望建立自己的课程。我们随时欢迎每条建议。
标签: python api class optimization coding-style