As I transition from JavaScript to Python, I noticed I haven't figured out a way to add properties to the data type classes. For example, in JavaScript, if I wanted to be able to type arr.last and have it return the last element in the array arr, or type arr.last = 'foo' and to set the last element to 'foo', I would use:
Object.defineProperty(Array.prototype,'last',{ get:function(){ return this[this.length-1]; }, set:function(val){ this[this.length-1] = val; } }); var list = ['a','b','c']; console.log(list.last); // "c" list.last = 'd'; console.log(list); // ["a","b","d"] However, in Python, I'm not sure how to do the equivalent of Object.defineProperty(X.prototype,'propname',{get:function(){},set:function(){}});
Note: I am not asking for how to do the specific example function, I am trying to be able to define a property with a get and set onto the primitive data types (str, int, float, list, dict, set, etc.)