Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何向新手解释Python中的属性_Python_Attributes - Fatal编程技术网

如何向新手解释Python中的属性

如何向新手解释Python中的属性,python,attributes,Python,Attributes,有人能简单地解释一下Python语言中的属性是什么吗 例如,我能说些什么 list.append(x) 使用直观、简单的日常生活示例,在列表末尾添加一个对象?我发现属性描述了一个对象的属性,例如,我头发的属性是棕色和短发 很好,但是如果是这样,append属性描述了list的哪些属性?在列表的末尾添加一些内容?我想说这是对列表的操作,而不是它的属性 你能帮我澄清一下吗?属性只是可以使用属性建模的一个东西。正如您所说,添加到列表末尾的操作是另一个类似的操作。这在Python中有一个相当简单的解释

有人能简单地解释一下Python语言中的属性是什么吗

例如,我能说些什么

list.append(x)
使用直观、简单的日常生活示例,在列表末尾添加一个对象?我发现属性描述了一个对象的属性,例如,我头发的属性是棕色和短发

很好,但是如果是这样,
append
属性描述了
list
的哪些属性?在
列表的末尾添加一些内容
?我想说这是对
列表的操作,而不是它的属性


你能帮我澄清一下吗?

属性只是可以使用属性建模的一个东西。正如您所说,添加到列表末尾的操作是另一个类似的操作。这在Python中有一个相当简单的解释;由于函数是一级值,它们可以像任何其他类型一样存储为属性值。这里,
list.append
只是一个函数,当调用它时,它会将参数添加到
list
的末尾。可以看出,调用函数的名称并不重要。以下行为相同:

  • list.append(5)
  • f=list.append;f(5)

  • 在这两种情况下,使用参数5调用相同的绑定方法。

    属性只是可以使用属性建模的一件事。正如您所说,添加到列表末尾的操作是另一个类似的操作。这在Python中有一个相当简单的解释;由于函数是一级值,它们可以像任何其他类型一样存储为属性值。这里,
    list.append
    只是一个函数,当调用它时,它会将参数添加到
    list
    的末尾。可以看出,调用函数的名称并不重要。以下行为相同:

  • list.append(5)
  • f=list.append;f(5)
  • 在这两种情况下,使用参数5调用相同的绑定方法。

    请参见: 尤其是9.3.3。实例对象:有两种有效的属性名称,数据属性和方法。你也会发现这些例子。 那么,为什么方法也被称为属性呢?对于某些方法,“属性”一词比其他方法更合适。 例如:

    此方法可以返回汽车的颜色

    就定义和概括而言,点后的单词称为点前对象的属性。

    参见: 尤其是9.3.3。实例对象:有两种有效的属性名称,数据属性和方法。你也会发现这些例子。 那么,为什么方法也被称为属性呢?对于某些方法,“属性”一词比其他方法更合适。 例如:

    此方法可以返回汽车的颜色


    将点后的单词称为点前对象的属性作为定义和泛化的问题。

    你可能会推迟解释,直到你向你的学生介绍了
    类以及函数可以分配给变量的想法,就像可以分配数字或数据结构一样。在这一点上,很明显,方法是一个属性,就像存储值是一个属性一样。比较计数和碰撞

    class Counter( object):
       def __init__( self, initial=0):
          self.count=initial
       def bump(self):
          self.count += 1
          print( "count = {0}".format( self.count) )
    
    count是一个整数属性。凹凸是一个“绑定方法”属性(通常称为方法)。list.append是另一个这样的属性

    >>> d=Counter()
    >>> d.bump()
    count = 1
    >>> d.bump
    <bound method counter.bump of <__main__.counter object at 0x7fb5eb01db38>>
    >>> d.count
    1
    >>> dir(d)
    ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__',  '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__',
     'bump', 'count']
    
    >d=计数器()
    >>>d.bump()
    计数=1
    >>>d.通气
    >>>d.伯爵
    1.
    >>>署长(丁)
    “UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU新的、新的、减少的、减少的、报告的、设置的、大小的、结构的、子类的,
    “碰撞”,“计数”]
    
    (特别是最后两个和您的
    \uuuuu init\uuuu
    。其余的都是从对象继承的)


    或者,告诉他这是一个方法,不要(还)提到方法是一个属性。属性:附着到对象的数据。方法:附加到对象的函数(通常用于以某种方式操作附加的数据)

    你可能会推迟解释,直到你向你的学生介绍了
    类以及函数可以分配给变量的想法,就像分配数字或数据结构一样。在这一点上,很明显,方法是一个属性,就像存储值是一个属性一样。比较计数和碰撞

    class Counter( object):
       def __init__( self, initial=0):
          self.count=initial
       def bump(self):
          self.count += 1
          print( "count = {0}".format( self.count) )
    
    count是一个整数属性。凹凸是一个“绑定方法”属性(通常称为方法)。list.append是另一个这样的属性

    >>> d=Counter()
    >>> d.bump()
    count = 1
    >>> d.bump
    <bound method counter.bump of <__main__.counter object at 0x7fb5eb01db38>>
    >>> d.count
    1
    >>> dir(d)
    ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__',  '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__',
     'bump', 'count']
    
    >d=计数器()
    >>>d.bump()
    计数=1
    >>>d.通气
    >>>d.伯爵
    1.
    >>>署长(丁)
    “UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU新的、新的、减少的、减少的、报告的、设置的、大小的、结构的、子类的,
    “碰撞”,“计数”]
    
    (特别是最后两个和您的
    \uuuuu init\uuuu
    。其余的都是从对象继承的)


    或者,告诉他这是一个方法,不要(还)提到方法是一个属性。属性:附着到对象的数据。方法:附加到对象的函数(通常用于以某种方式操作附加的数据)

    例如,
    append
    等实例方法是一种行为,你的头发可能会
    生长
    。因此,不要使用术语“属性”来描述更好的“方法”。为一个方法找到一个新的“现实生活”类比,而不是尝试使用与属性相同的类比