Re: Work with Contexts
- To: mathgroup at smc.vnet.net
- Subject: [mg35757] Re: Work with Contexts
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Mon, 29 Jul 2002 03:13:34 -0400 (EDT)
- References: <ai06l0$19t$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hermann, > My question is: > Why is the variable "klasse" also defined in the context Global? klasse is created in the context "Global`" when the assignment oo`new12[] := (Print["Name klasse - Begin"]; Print["$Context: ", $Context]; Print["$ContextPath: ", $ContextPath]; ToExpression["klasse"]; Print["Context of klasse: ", Context[klasse]]; oo`resumeContext[]; Print["Name klasse - End"];) is converted into internal form (with contexted symbols) prior to evaluation. This is before oo`new11["Rechteck"]; is evaluated -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 "Hermann Schmitt" <schmitther at netcologne.de> wrote in message news:ai06l0$19t$1 at smc.vnet.net... > Hello, > I have the following program: > > oo`newContext[ctxp_] := ( > BeginPackage[ctxp[[1]]]; > ) > oo`resumeContext[] := ( > EndPackage[]; > $ContextPath = Drop[$ContextPath, 1]; > ) > oo`new11[x_] := ( > Print["Begin new11"]; > klassnam = x; > ctx = klassnam <> "`"; > oo`newContext[{ctx}]; > ); > oo`new12[] := ( > Print["Name klasse - Begin"]; > Print["$Context: ", $Context]; > Print["$ContextPath: ", $ContextPath]; > ToExpression["klasse"]; > Print["Context of klasse: ", Context[klasse]]; > oo`resumeContext[]; > Print["Name klasse - End"]; > ); > Print["Begin Programm:"]; > Print["$Context: ", $Context]; > Print["$ContextPath: ", $ContextPath]; > oo`new11["Rechteck"]; > oo`new12[]; > Print["after new12:"]; > Print["$Context: ", $Context]; > Print["$ContextPath: ", $ContextPath]; > > I get the following results: > > Begin Programm: > $Context: Global` > $ContextPath: {Global`, System`} > Begin new11 > Name klasse - Begin > $Context: Rechteck` > $ContextPath: {Rechteck`, System`} > klasse > klasse::shdw: Symbol klasse appears in multiple contexts {Rechteck`, > Global`} > ; definitions in context Rechteck` > may shadow or be shadowed by other definitions.Context of klasse: > Global` > Name klasse - End > after new12: > $Context: Global` > $ContextPath: {Global`, System`} > In[14]:= > > My question is: > Why is the variable "klasse" also defined in the context Global? > > Hermann Schmitt > > >
- Follow-Ups:
- Re: Re: Work with Contexts
- From: "Hermann Schmitt" <schmitther@netcologne.de>
- Re: Re: Work with Contexts