Add a variable to a class instance at runtime: Difference between revisions

Content added Content deleted
No edit summary
(added PowerShell)
Line 222: Line 222:
met1(bar) => ;;; new value
met1(bar) => ;;; new value
</pre>
</pre>

=={{header|PowerShell}}==
PowerShell allows extending arbitrary object instances at runtime with the <code>Add-Member</code> cmdlet. The following example adds a property ''Title'' to an integer:
<lang powershell>$x = 42 `
| Add-Member -PassThru `
NoteProperty `
Title `
"The answer to the question about life, the universe and everything"</lang>
Now that property can be accessed:
<pre>PS> $x.Title
The answer to the question about life, the universe and everything</pre>
or reflected:
<pre>PS> $x | Get-Member

TypeName: System.Int32

Name MemberType Definition
---- ---------- ----------
CompareTo Method int CompareTo(System.Object value), ...
Equals Method bool Equals(System.Object obj), bool...
GetHashCode Method int GetHashCode()
GetType Method type GetType()
GetTypeCode Method System.TypeCode GetTypeCode()
ToString Method string ToString(), string ToString(s...
Title NoteProperty System.String Title=The answer to th...</pre>
While trying to access the same property in another instance will fail:
<pre>PS> $y = 42
PS> $y.Title</pre>
(which simply causes no output).


=={{header|Python}}==
=={{header|Python}}==