Subgroup: Feature

Class: QgsFeature

class qgis.core.QgsFeature(id: int = 0)

Bases: sip.wrapper

Constructor for QgsFeature

Parameters:id – feature id

QgsFeature(fields: QgsFields, id: int = 0) Constructor for QgsFeature

Parameters:
  • fields – feature’s fields
  • id – feature id

QgsFeature(rhs: QgsFeature) Copy constructor

The feature class encapsulates a single feature including its id, geometry and a list of field/values attributes.

Note

QgsFeature objects are implicitly shared.

Methods

attribute Lookup attribute value from attribute name.
attributes Returns the feature’s attributes.
clearGeometry Removes any geometry associated with the feature.
deleteAttribute Deletes an attribute and its value.
fieldNameIndex Utility method to get attribute index from name.
fields Returns the field map associated with the feature.
geometry Returns the geometry associated with this feature.
hasGeometry Returns true if the feature has an associated geometry.
id Get the feature ID for this feature.
initAttributes Initialize this feature with the given number of fields.
isValid Returns the validity of this feature.
setAttribute Set an attribute’s value by field index.
setAttributes Sets the feature’s attributes.
setFields Assign a field map with the feature to allow attribute access by attribute name.
setGeometry Set the feature’s geometry.
setId Sets the feature ID for this feature.
setValid Sets the validity of the feature.

Signals

Attributes

attribute(self, name: str) → object

Lookup attribute value from attribute name. Field map must be associated using setFields() before this method can be used.

Parameters:name – The name of the attribute to get
Returns:The value of the attribute (C++: Invalid variant if no such name exists )

Note

For Python: raises a KeyError exception if the field is not found

Note

Alternatively in Python: @code feature[name] @endcode

See also

setFields()

attribute(self, fieldIdx: int) -> object Lookup attribute value from its index. Field map must be associated using setFields() before this method can be used.

Parameters:fieldIdx – The index of the attribute to get
Returns:The value of the attribute (C++: Invalid variant if no such index exists )

Note

For Python: raises a KeyError exception if the field is not found

Note

Alternatively in Python: @code feature[fieldIdx] @endcode

See also

setFields()

attributes(self) → object

Returns the feature’s attributes.

Returns:list of feature’s attributes

See also

setAttributes()

New in version 2.9.

Note

Alternatively in Python: iterate feature, eg. @code [attr for attr in feature] @endcode

clearGeometry(self)

Removes any geometry associated with the feature.

See also

setGeometry()

See also

hasGeometry()

New in version 3.0.

deleteAttribute(self, field: int)

Deletes an attribute and its value.

Parameters:field – the index of the field

See also

setAttribute()

Note

For Python: raises a KeyError exception if the field is not found

Note

Alternatively in Python: @code del feature[field] @endcode

deleteAttribute(self, name: str) -> bool Removes an attribute value by field name. Field map must be associated using setFields() before this method can be used.

Parameters:name – The name of the field to delete
Returns:false if attribute name could not be converted to index (C++ only)

Note

For Python: raises a KeyError exception instead of returning false

Note

Alternatively in Python: @code del feature[name] @endcode

See also

setFields()

fieldNameIndex(self, fieldName: str) → int

Utility method to get attribute index from name. Field map must be associated using setFields() before this method can be used.

Parameters:fieldName – name of field to get attribute index of
Returns:-1 if field does not exist or field map is not associated.

See also

setFields()

fields(self) → QgsFields

Returns the field map associated with the feature.

See also

setFields()

geometry(self) → QgsGeometry

Returns the geometry associated with this feature. If the feature has no geometry, an empty QgsGeometry object will be returned.

See also

hasGeometry()

See also

setGeometry()

hasGeometry(self) → bool

Returns true if the feature has an associated geometry.

See also

geometry()

New in version 3.0..

id(self) → int

Get the feature ID for this feature.

Returns:feature ID

See also

setId()

initAttributes(self, fieldCount: int)

Initialize this feature with the given number of fields. Discard any previously set attribute data.

Parameters:fieldCount – Number of fields to initialize
isValid(self) → bool

Returns the validity of this feature. This is normally set by the provider to indicate some problem that makes the feature invalid or to indicate a null feature.

See also

setValid()

setAttribute(self, field: int, attr: Any) → bool

Set an attribute’s value by field index. The feature will be valid if it was successful.

Parameters:
  • field – the index of the field to set
  • attr – the value of the attribute
Returns:

false, if the field index does not exist

Note

For Python: raises a KeyError exception instead of returning false

Note

Alternatively in Python: @code feature[field] = attr @endcode

See also

setAttributes()

setAttribute(self, name: str, value: Any) Insert a value into attribute. Returns false if attribute name could not be converted to index. Field map must be associated using setFields() before this method can be used. The feature will be valid if it was successful

Parameters:
  • name – The name of the field to set
  • value – The value to set
Returns:

false if attribute name could not be converted to index (C++ only)

Note

For Python: raises a KeyError exception instead of returning false

Note

Alternatively in Python: @code feature[name] = attr @endcode

See also

setFields()

setAttributes(self, attrs: object)

Sets the feature’s attributes. The feature will be valid after.

Parameters:attrs – attribute list

See also

setAttribute()

See also

attributes()

setFields(self, fields: QgsFields, initAttributes: bool = True)

Assign a field map with the feature to allow attribute access by attribute name.

Parameters:
  • fields – The attribute fields which this feature holds
  • initAttributes – If true, attributes are initialized. Clears any data previously assigned.

C++: Defaults to false Python: Defaults to true

New in version 2.9.

See also

fields()

setGeometry(self, geometry: QgsGeometry)

Set the feature’s geometry. The feature will be valid after.

Parameters:geometry – new feature geometry

See also

geometry()

See also

clearGeometry()

setId(self, id: int)

Sets the feature ID for this feature.

Parameters:id – feature id

See also

id()

setValid(self, validity: bool)

Sets the validity of the feature.

Parameters:validity – set to true if feature is valid

See also

isValid()