COMPAT: Scalar types immutable
See original GitHub issueMy impression (discussion somewhere on gitter) is that pd.Period
is supposed to be immutable. That would certainly make sense for objects going into a PeriodIndex
.
per = pd.Period('2014Q1')
>>> per
Period('2014Q1', 'Q-DEC')
freq = per.freq.copy()
freq.n *= 2
per.freq = freq
>>> per
Period('2014Q1', '2Q-DEC')
per.freq
is a DateOffset
object*, which is defined in tseries.offsets
. There is a comment in tseries.offsets.BusinessHourMixin.apply
saying “# calculate here because offset is not immutable”.
So a couple of questions:
- Are we sure
pd.Period
should be immutable? If so, is there a preferred way of imposing that? Note that the class is defined in a .pyx file and some methods explicitly call__new__
. - Does the comment about offset not being immutable mean that it can’t or shouldn’t be? Outside of
__init__
and__setstate__
, the only place intseries.offsets
where I see anyself.foo
attributes being set isself.daytime = False
inBusinessHourMixin._get_business_hours_by_sec
. grepping for “daytime”, this attribute does not appear to be referenced anywhere else.
* BTW, I think DateOffset
is one of a small number of commonly-used classes for which there is not a ABCDateOffset
equivalent. Is that by design? If not, I’ll be happy to make one.
Issue Analytics
- State:
- Created 6 years ago
- Comments:18 (18 by maintainers)
Top Results From Across the Web
Which types are mutable and immutable in the Google Go ...
Then the answer is: Integer variables are mutable, integer values are immutable. This view is consistent with the Go specification which states ...
Read more >proposal: Go 2: immutable type qualifier · Issue #27975 - GitHub
This issue describes a language feature proposal to Immutable Types. It targets the current Go 1.x (> 1.11) language specification and ...
Read more >Immutable - Android Developers
data classes that only contain val properties that do not have custom getters can safely be marked as Immutable if the types of...
Read more >What do you really know about Variables, Data Types and ...
It's about a variable (re)assignment. Immutability is when “an object's state cannot be modified after it is created” whereas Mutability refers to “an...
Read more >Complete immutability and Object Oriented Programming
3. Immutability can be simulated in an OOP language, by only exposing object access points as methods or read-only properties that do not...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Possibly closed by #21341
Closed by #17239 and #21341