python / python/typing

Clarification: interaction between `@property` and `@final`

Open
#2,336 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

topic: typing spec
Dominant language
Python
Stars
1.8k
Forks
302
Avg merge
23h
Merged PRs (30d)
8

Description

The spec for @final says:

The method decorator version may be used with all of instance methods, class methods, static methods, and properties.

and it made me wonder how exactly final interacts with property. There are no conformance tests exercising this specific interaction.

From carefully reading the spec, it seems like the only effect of @final on a property is to prevent it from being overridden in a child class, and that decorating a property with @final does not cause it to be read-only or disallow a setter.

Is my understanding correct? If so, does it make sense to add a clarification to the spec that the decorator does not make a property read-only?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the @final section of the typing specification and review existing conformance tests for properties, setters, and inheritance. Done means the specification clearly states how @final applies to properties and, if appropriate, a conformance test records the intended behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation, testing-qa
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.