理解Python中的Init

理解Python中的Init,python,python-2.7,Python,Python 2.7,假设我创建了一个类名“Application”,它接受“frame”小部件 在构造函数/初始化中,我会这样做 def __init__(self, master=None): 创建实例时 root = Tk() app = Application(master=root) 我不明白在创建实例时,我正在将类Tk()的实例分配给Master。那么为什么在初始化时我们要将其设置为“无”。有人能调查一下并解释一下吗 当您编写def\uuu init\uuuu(self,master=None)时,请

假设我创建了一个类名“Application”,它接受“frame”小部件

在构造函数/初始化中,我会这样做

def __init__(self, master=None):
创建实例时

root = Tk()
app = Application(master=root)
我不明白在创建实例时,我正在将类Tk()的实例分配给Master。那么为什么在初始化时我们要将其设置为“无”。有人能调查一下并解释一下吗


当您编写
def\uuu init\uuuu(self,master=None)时,请提前感谢:
您正在将None设置为
master
的默认值。调用
应用程序(master=root)
时,传递的是一个覆盖默认值的值

A simple example:

def foo(a=1):
    print "a is", a

>>> foo()
a is 1
>>> foo(2)
a is 2
>>> foo(a=2)
a is 2
>>> 

写入
def\uuu init\uuuu(self,master=None)时:
将None设置为
master
的默认值。调用
应用程序(master=root)
时,传递的是一个覆盖默认值的值

A simple example:

def foo(a=1):
    print "a is", a

>>> foo()
a is 1
>>> foo(2)
a is 2
>>> foo(a=2)
a is 2
>>> 

你好我需要解释一下。是否有任何规则/文件对此进行了更详细的解释。我明白了这一点,但从技术上讲,我仍然无法理解。当我调用foo(没有参数)时,fine a会得到默认值。但当我传递一些参数时,它仍然应该得到默认值。为什么忽略默认值???@PragRao:传递值时,它将覆盖默认值。这就是“default”的意思:它是指在不指定任何其他值的情况下使用的值。你可以从开始了解更多信息。嗨!!我需要解释一下。是否有任何规则/文件对此进行了更详细的解释。我明白了这一点,但从技术上讲,我仍然无法理解。当我调用foo(没有参数)时,fine a会得到默认值。但当我传递一些参数时,它仍然应该得到默认值。为什么忽略默认值???@PragRao:传递值时,它将覆盖默认值。这就是“default”的意思:它是指在不指定任何其他值的情况下使用的值。您可以从开始了解更多信息。