哪个类选项更可取,为什么?
选项1
class Person():
def __init__(self):
pass
def sayHello(self, name):
print "{} says hello!".format(name)
def driver(self):
for name in names: # names is generated in the driver function by some means of input
self.sayHello(name)
选项2
class Person():
def __init__(self):
self.name = None
def sayHello(self):
print "{} says hello!".format(self.name)
def driver(self):
for name in names: # names is generated in the driver function by some means of input
self.name = name
self.sayHello()
您可以假设变量不仅限于name
,并且多个函数正在使用这些变量。我要说明的要点是变量值在for
循环内发生变化
答案 0 :(得分:1)
即使您的示例在语法上是正确的,也完全无法帮助您理解有关如何使用实例属性的问题。
出于我的猜测,有两个问题:
def foo(self, bar)
)?self.name
)?Instance属性。该变量将“附加”到对象上(例如,汽车的颜色,用户的昵称...)
如果您的函数/方法需要调用此类变量,则必须使用self
来获取它,因此在定义此函数时必须将其设置为第一个参数。
如果您只需要一个临时变量来对其进行循环并执行某些操作,则无需使用类方法,只需一个简单的函数即可解决问题。