我只是尝试构建一个基本类,以便我可以学习更多关于python的知识。 到目前为止,我有以下内容:
class Bodymassindex:
count = 0
def __init__(self,name,weight,height):
self.name = name
self.weight = 14 * weight
self.height = 12 * height
notes = "no notes have been assigned yet"
bmitotal = 0
Bodymassindex.count += 1
def displayCount(self):
print "Total number of objects is %d" % Bodymassindex.count
def notesBmi(self,text):
self.notes = text
def calcBmi(self):
return ( self.weight * 703 ) / ( self.height ** 2 )
在添加注释变量和查看这样做的正确方法方面?
谢谢,
答案 0 :(得分:4)
bmitotal
中的notes
和__init__
变量将在__init__
完成时进行本地和垃圾收集,因此将其初始化为无用。您可能希望将它们初始化为self.notes
和self.bmitotal
Bodymassindex.count
就像一个静态变量,与所有实例共享的值。
答案 1 :(得分:2)
只需访问该属性:
class BodyMassIndex(object): #Inheriting from object in 2.x ensures a new-style class.
count = 0
def __init__(self, name, weight, height):
self.name = name
self.weight = 14 * weight
self.height = 12 * height
self.notes = None
self.bmitotal = 0
BodyMassIndex.count += 1
def display_count(self):
print "Total number of objects is %d" % BodyMassIndex.count
def calculate_bmi(self):
return ( self.weight * 703 ) / ( self.height ** 2 )
test = BodyMassIndex("bob", 10, 10)
test.notes = "some notes"
print(test.notes)
Python中的直接访问没有任何问题。正如其他人所指出的那样,你可能想要制作notes
和bmitotal
个实例变量,我在这里做过。