2011-05-30 95 views
-1

我写这个只是为了测试“属性”功能。但是,我正在get_name函数中发现一个错误。我会很感激任何帮助。调试测试代码

#The Property Critter 
#Using New Classes vs Old Classes: 

class Critter (object): 
    def __init__ (self, name): 
     print "A new critter has been born." 
     self.__name = name 

    def get_name (self): 
     return self.__name 

    def set_name (self, new_name): 
     if new_name == "": 
      print "The name can't be blank. Ass." 
     else: 
      self.__name = new_name 
      print "Namt change successful." 

name = property (get_name, set_name) 

crit = Critter ("Pooch Dog") 
print crit.name 
crit.name = "Mad Dog" 
print crit.name 
+0

能否请你在这里,而不是发布您的代码在其他网站 – Jordan 2011-05-30 02:17:24

+1

看不到的问题.. 。也许'name = property(get_name,set_name)'缺少缩进或者你粘贴代码的网站改变了它? – JBernardo 2011-05-30 02:21:56

+0

@mu似乎对我来说太明显了......'get_name'和'set_name'不在范围内。 – JBernardo 2011-05-30 02:28:44

回答

3

您需要缩进name = property (get_name, set_name)所以它是你的小动物类的一部分:

class Critter (object): 
    def __init__ (self, name): 
     print "A new critter has been born." 
     self.__name = name 

    def get_name (self): 
     return self.__name 

    def set_name (self, new_name): 
     if new_name == "": 
      print "The name can't be blank. Ass." 
     else: 
      self.__name = new_name 
      print "Namt change successful." 

    name = property (get_name, set_name) 

crit = Critter ("Pooch Dog") 
print crit.name 
crit.name = "Mad Dog" 
print crit.name 
+0

明白了,谢谢! – Louis93 2011-05-30 02:29:00