2024-04-19 13:11:04 发布
网友
有人能简单地解释一下Python语言中的属性是什么吗?你知道吗
比如我能说什么
list.append(x)
使用直观、简单的日常生活示例,在列表末尾添加一个对象?我发现属性描述了一个对象的属性,比如我头发的属性就是棕色和短发。你知道吗
很好,但如果是这样,list属性描述了append的什么属性?在list的末尾加上什么?我想说这是对list的操作,而不是它的属性。你知道吗
list
append
你能帮我澄清一下吗?你知道吗
属性只是可以使用属性建模的一件事情。如您所说,添加到列表末尾的操作是另一种操作。这在Python中有一个相当直接的解释;因为函数是一级值,所以它们可以像任何其他类型一样存储为属性的值。这里,list.append只是一个函数,当调用它时,它会将它的参数添加到list的末尾。可以看出,调用函数的名称并不重要。以下行为相同:
list.append
list.append(5)
f = list.append; f(5)
在这两种情况下,使用参数5调用相同的绑定方法。你知道吗
在向学生介绍class和函数可以赋值给变量的想法之前,您可能会推迟解释。在这一点上,很明显方法是属性,就像存储值是属性一样。比较计数和碰撞
class
class Counter( object): def __init__( self, initial=0): self.count=initial def bump(self): self.count += 1 print( "count = {0}".format( self.count) )
count是一个整数属性。bump是一个“绑定方法”属性(通常称为方法)。列表.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']
(特别是最后两个和你的__init__。其余的继承自对象)。你知道吗
__init__
或者,告诉他这是一个方法,不要(还)提到方法是一个属性。属性:附着到对象的数据。方法:附加到对象的函数(通常用于以某种方式操作附加的数据)。你知道吗
参见python documentation: 尤其是9.3.3。实例对象:有两种有效的属性名,数据属性和方法。你也会发现一些例子。 那么,为什么方法也被称为属性呢?对于某些方法,“属性”一词比其他方法更合适。 示例:
car.color()
这种方法可以返回汽车的颜色。你知道吗
把点后的词称为点前物体的属性,这只是一个定义和概括的问题。你知道吗
属性只是可以使用属性建模的一件事情。如您所说,添加到列表末尾的操作是另一种操作。这在Python中有一个相当直接的解释;因为函数是一级值,所以它们可以像任何其他类型一样存储为属性的值。这里,
list.append
只是一个函数,当调用它时,它会将它的参数添加到list
的末尾。可以看出,调用函数的名称并不重要。以下行为相同:list.append(5)
f = list.append; f(5)
在这两种情况下,使用参数5调用相同的绑定方法。你知道吗
在向学生介绍
class
和函数可以赋值给变量的想法之前,您可能会推迟解释。在这一点上,很明显方法是属性,就像存储值是属性一样。比较计数和碰撞count是一个整数属性。bump是一个“绑定方法”属性(通常称为方法)。列表.append是另一个这样的属性。你知道吗
(特别是最后两个和你的
__init__
。其余的继承自对象)。你知道吗或者,告诉他这是一个方法,不要(还)提到方法是一个属性。属性:附着到对象的数据。方法:附加到对象的函数(通常用于以某种方式操作附加的数据)。你知道吗
参见python documentation: 尤其是9.3.3。实例对象:有两种有效的属性名,数据属性和方法。你也会发现一些例子。 那么,为什么方法也被称为属性呢?对于某些方法,“属性”一词比其他方法更合适。 示例:
这种方法可以返回汽车的颜色。你知道吗
把点后的词称为点前物体的属性,这只是一个定义和概括的问题。你知道吗
相关问题 更多 >
编程相关推荐