InitializationValue[sym]
represents the settable persistent value with which the symbol sym will be initialized.
InitializationValue["context`name"]
represents the settable initialization value for the symbol with the specified complete name.
InitializationValue[sym,{loc1,…}]
specifies the persistence locations to search for a possible initialization value.
InitializationValue
InitializationValue[sym]
represents the settable persistent value with which the symbol sym will be initialized.
InitializationValue["context`name"]
represents the settable initialization value for the symbol with the specified complete name.
InitializationValue[sym,{loc1,…}]
specifies the persistence locations to search for a possible initialization value.
Details and Options
- InitializationValue[sym] is equivalent to InitializationValue[sym,$PersistencePath].
- InitializationValue[sym]=value sets an initialization value for sym.
- InitializationValue[sym]=value is equivalent to InitializationValue[sym,$PersistenceBase]=value.
- The following options can be given:
-
EvaluationEnvironment $EvaluationEnvironment the environment in which the value should be used MergingFunction Automatic the function applied to the list of values found ValuePreprocessingFunction Identity the function applied to new values to be assigned ExpirationDate None when the value should expire PersistenceTime None how long the value should persist - In InitializationValue[sym,loc], possible forms for the persistence location loc include:
-
PersistenceLocation["type"] "Local", "Cloud", "FrontEndSession", etc. locations "type" equivalent to PersistenceLocation["type"] PersistenceLocation["type","base"] location with a particular base (directory etc.) "type""base" equivalent to PersistenceLocation["type","base"] - Supported location types include:
-
"KernelSession" current invocation of the Wolfram Language kernel "FrontEndSession" current invocation of the Wolfram Notebook front end "Local" local to a computer, based on user home directory "LocalShared" local to a computer, based on $BaseDirectory "Cloud" in the cloud defined by the current $CloudBase "Installation" installation defaults - InitializationValue[sym]=$NoValue specifies that the symbol sym should be unset on initialization.
- The value returned from InitializationValue[sym,{loc1,loc2,…}] is obtained by applying the given merging function to the list of values {InitializationValue[sym,loc1],InitializationValue[sym,loc2],…}. The default merging function is First.
- If no explicit setting for MergingFunction is given, the setting to use is looked up on $PersistencePath.
- Before a new value is assigned in InitializationValue[sym]=value, any specified value preprocessing function is applied to value before the value is assigned.
- If the preprocessing function returns $Failed, the assignment is not performed.
- If no explicit setting for ValuePreprocessingFunction is given, the setting to use is looked up on $PersistencePath.
- An expired initialization value is treated as nonexistent, and the underlying persistent object may be removed.
- Initialization values can be removed with Remove. Remove[InitializationValue[name]] is equivalent to Remove[InitializationValue[name,$PersistenceBase]].
Examples
open all close allBasic Examples (2)
Set a value to be evaluated every time the kernel starts:
InitializationValue[$Initialization] = Hold[data = Get["mydata.m"]]Set an initialization value for a variable:
InitializationValue[myvar, "KernelSession"] = 42Get any initialization value defined:
InitializationValue[myvar, "KernelSession"]Initialize the variable from the persistent value in the current kernel session:
myvarInitialize[myvar];myvarRemove the initialization value:
Remove[InitializationValue[myvar, "KernelSession"]]Scope (1)
Set an initialization value in the default persistence location:
$PersistenceBaseInitializationValue[myvar] = 43;Set an initialization value in the "KernelSession" persistence location:
InitializationValue[myvar, "KernelSession"] = 42;The first value found in $PersistencePath is used:
$PersistencePathInitializationValue[myvar]Find all initialization values ever defined:
InitializationObjects[myvar]Generalizations & Extensions (1)
Set an initialization value for parallel subkernels:
InitializationValue[$TimeZone, "Local", EvaluationEnvironment -> "Subkernel"] = 0;All newly launched parallel subkernels use the given value:
LaunchKernels[2];ParallelEvaluate[$TimeZone]Remove the initialization value:
Remove[InitializationValue[$TimeZone, "Local", EvaluationEnvironment -> "Subkernel"]]Options (5)
EvaluationEnvironment (1)
MergingFunction (1)
Give a default value for a variable:
InitializationValue[ivar, "Local"] = {};Set a custom merging function for initialization values of the variable:
io = InitializationObject[ivar, "Local"]io["MergingFunction"] = Flatten;Specify initialization values at different persistence locations:
InitializationValue[ivar, "KernelSession"] = 2;
InitializationValue[ivar, "FrontEndSession"] = 3;The custom merging function is used to return the list of all values on $PersistencePath:
InitializationValue[ivar]Use a different merging function for a particular value lookup:
InitializationValue[ivar, MergingFunction -> First]ValuePreprocessingFunction (1)
Give a default value for an initialization value:
InitializationValue[var3, "Installation"] = 0;Set a a custom value preprocessing function that accepts only integers:
validateInteger[x_] := If[IntegerQ[x], x, $Failed]io = InitializationObject[var3, "Installation"]io["ValuePreprocessingFunction"] = validateInteger;Assign an integer at any persistence location:
InitializationValue[var3, "FrontEndSession"] = 2;Assigning anything else generates an error, and the assignment is not performed:
InitializationValue[var3, "FrontEndSession"] = 1.5;PersistenceTime (1)
Applications (2)
Override the default persistence base in all kernels started under the current front end session:
InitializationValue[$PersistenceBase, "FrontEndSession"] = "KernelSession";Quit[]$PersistenceBaseSet a value for $GeoLocation tied to your login account:
InitializationValue[$GeoLocation, "Local"] = {47.190, 8.7048, 600.};Properties & Relations (2)
Initialization values are stored in persistent objects:
InitializationValue[Global`myvar] = 42;PersistentObjects["*myvar"]List the existing initialization values in all editable persistence locations:
InitializationObjects[All, {"FrontEndSession", "Local", "Notebook", "Cloud"}]DeleteObject[%]Possible Issues (1)
Create two initialization values for a symbol in different locations:
InitializationValue[myvar, "KernelSession"] = 42;
InitializationValue[myvar] = 43;Remove by default removes only the value in the location given by $PersistenceBase:
Remove[InitializationValue[myvar]]InitializationValue[myvar]Remove all values that might exist anywhere in the locations given by $PersistencePath:
Remove[InitializationValue[myvar, $PersistencePath]]InitializationValue[myvar]Related Guides
Related Workflows
Text
Wolfram Research (2017), InitializationValue, Wolfram Language function, https://reference.wolfram.com/language/ref/InitializationValue.html (updated 2019).
CMS
Wolfram Language. 2017. "InitializationValue." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/InitializationValue.html.
APA
Wolfram Language. (2017). InitializationValue. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/InitializationValue.html
BibTeX
@misc{reference.wolfram_2026_initializationvalue, author="Wolfram Research", title="{InitializationValue}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/InitializationValue.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_initializationvalue, organization={Wolfram Research}, title={InitializationValue}, year={2019}, url={https://reference.wolfram.com/language/ref/InitializationValue.html}, note=[Accessed: 12-June-2026]}