这些看起来意思相同。但在什么情境下使用哪个术语更合适?
一般来说(并且在正常的英语用法中),这些术语意思相同。
在HTML / Javascript的特定上下文中,这些术语变得混淆了,因为DOM元素的HTML表示具有属性(这是XML中包含在标签内部的键/值对的术语),但是当表示为JavaScript对象时,这些属性会显示为对象属性。
更让人困惑的是,对属性的更改通常会更新属性。
例如,更改element.href
属性将更新元素上的href
属性,并且这将反映在调用element.getAttribute('href')
中。
但是,如果随后读取该属性,则它将被规范化为绝对URL,即使属性可能是相对URL!
Python
。我可以使用术语 类属性
和 实例属性
吗? - joe在计算机科学出现之前,这些词语已经存在。
属性是我们赋予某人或某物的质量或对象。例如,权杖是权力和国家身份的属性之一。
性质是一个不需要归属的质量。例如,黏土具有粘附性;即黏土的一个属性是其粘着性。另一个例子:金属的一个性质是导电性。性质通过物理现象表现自己,不需要将它们归属于某人或某物。同样地,说某人拥有男性特征是显而易见的。实际上,您可以说某个性质是由某人或某物拥有。
然而,在计算机科学中,这两个词通常可以互换使用 - 但程序员通常没有英语文学学位,也不写作或关心语法书:)。
属性是您在HTML标签中使用的实际内容,例如
<input type="checkbox" checked="checked" />
在这个例子中,type和checked是属性。但是属性的值——即浏览器保存在DOM元素内部的值——才是最关键的。通常情况下,属性和属性值是相等的,所以很容易混淆。通常,一个属性用来描述机制或现实世界的事物。
属性用于描述模型。
例如,一个文档(放在您桌子上的)可能具有其为草稿的属性。
用于建模文档的类具有一个属性,以指示它是否是草稿。在这种情况下,属性捕获状态。
In Python...
class X( object ):
def __init__( self ):
self.attribute
def getAttr( self ):
return self.attribute
def setAttr( self, value ):
self.attribute= value
property_name= property( getAttr, setAttr )
属性是一个类似于名称的单个属性,它包装了一组setter、getter(和deleter)函数。
而属性通常是另一个对象中的单个对象。
然而,Python提供了像__getattr__
这样的方法,允许您扩展“属性”的定义。
归根结底 - 它们几乎是同义词。Python在实现方式上做了技术上的区分。
<property attribute="attributeValue">proopertyValue</property>
[Attribute]
public class Entity
{
private int Property{get; set;};
在Java(或其他语言)中,使用Property / Attribute取决于用途:
当值很少改变时(通常在启动时或用于环境变量),使用Property
Attribute是元素(对象)的值(对象子级),其可以非常频繁地更改/始终更改,并且可以是持久性的或非持久性的
name
属性和value
属性。属性通常是抽象的,而属性通常是具体的(想想类/对象)。人类有属性:hasHair
和hairColor
。“约翰”有属性:hasHair =“true”
和hairColor =“purple”
(约翰是Twisted Sister的粉丝)。 - nothingisnecessary