Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #26452

Re: Calling Values

Newsgroups comp.lang.python
Date 2012-08-03 11:23 -0700
References <8bdc29d5-fa88-4ead-a4a1-135d708eeb57@googlegroups.com> <mailman.2914.1344014492.4697.python-list@python.org>
Subject Re: Calling Values
From subhabangalore@gmail.com
Message-ID <mailman.2915.1344018241.4697.python-list@python.org> (permalink)

Show all headers | View raw


On Friday, August 3, 2012 10:50:52 PM UTC+5:30, Dennis Lee Bieber wrote:
> On Fri, 3 Aug 2012 04:49:46 -0700 (PDT), Subhabrata
> 
> <subhabangalore@gmail.com> declaimed the following in
> 
> gmane.comp.python.general:
> 
> 
> 
> > Dear Group,
> 
> > 
> 
> > I am trying to call the values of one function in the another function in the following way:
> 
> 
> 
> 	Technically, "the values of one function" are whatever it RETURNS;
> 
> 
> 
> > def func1():
> 
> > 	num1=10
> 
> > 	num2=20
> 
> > 	print "The Second Number is:",num2
> 
> > 	return
> 
> >
> 
> 	This function returns None.
> 
> 
> 
> 	Recommended software design practices are that any thing inside the
> 
> function should be local to just that function -- a function should be a
> 
> black box -- you call it with some data, and you obtain some results
> 
> when it returns; what it does internally should be "invisible" and have
> 
> no effect on any other code.
> 
> 
> 
> 	Read:
> 
> http://en.wikipedia.org/wiki/Coupling_%28computer_programming%29
> 
> (what you are attempting falls into "content coupling" if you change the
> 
> use of "module" to "function")
> 
> 
> 
> 	However, Python lets you declare names to be global (to the
> 
> module/file). This is primarily meant to be used when a function must
> 
> rebind a module level entity. (This would be "common coupling")
> 
> 
> 
> def func1():
> 
> 	global num1, num2
> 
> 	...
> 
> 
> 
> But, as mentioned, that now makes num1 and num2 names that are known
> 
> outside the functions.
> 
>  
> 
> > def func2():
> 
> > 	num3=num1+num2
> 
> > 	num4=num3+num1
> 
> > 	print "New Number One is:",num3
> 
> > 	print "New Number Two is:",num4
> 
> > 	return
> 
> > 
> 
> 	Misleading print statements, as you are NOT changing "number one" or
> 
> "number two"; you've just created two NEW names (num3, num4).
> 
> 
> 
> > I am preferring not to use argument passing or using class? Is there any alternate way?
> 
> >
> 
> 
> 
> 	Well, if you end func1 with
> 
> 
> 
> 	return num1, num2
> 
> 
> 
> you can change func2 into:
> 
> 
> 
> def func2():
> 
> 	n1, n2 = func1()
> 
> 	num3 = n1 + n2
> 
> 	num4 = num3 + n1
> 
> ...
> 
> -- 
> 
> 	Wulfraed                 Dennis Lee Bieber         AF6VN
> 
>         wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/

Dear Group,
Absolutely brilliant, Ramit.  Dennis also came with almost same answer.  Using global may not give clean results everytime. 

I wanted to say, 
>>> def func1():
	num1=10
	num2=20
	print "The Second Number is:",num2

	
>>> def func2():
	func1()
	num3=50
	print "The New Number is:",num3

>>> func2()
The Second Number is: 20
The New Number is: 50
The post went slightly wrong sorry. 
No, I experiment myself on idle evenings to experiment with coding etc so I think of problems, practice on them and try to see if any better code evolves. Nothing else. I posted and Steve did not comment perhaps never happens. He rebukes me so much from my early days here, I just enjoy it.

Regards and best wishes,
Subhabrata. 

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Calling Values Subhabrata <subhabangalore@gmail.com> - 2012-08-03 04:49 -0700
  Re: Calling Values Mark Lawrence <breamoreboy@yahoo.co.uk> - 2012-08-03 13:07 +0100
  Re: Calling Values Nobody <nobody@nowhere.com> - 2012-08-03 13:44 +0100
  Re: Calling Values Ulrich Eckhardt <ulrich.eckhardt@dominolaser.com> - 2012-08-03 14:32 +0200
  Re: Calling Values subhabangalore@gmail.com - 2012-08-03 07:38 -0700
    RE: Calling Values "Prasad, Ramit" <ramit.prasad@jpmorgan.com> - 2012-08-03 15:30 +0000
    Re: Calling Values Ethan Furman <ethan@stoneleaf.us> - 2012-08-03 08:37 -0700
  Re: Calling Values Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-08-03 16:24 +0000
  Re: Calling Values Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2012-08-03 13:20 -0400
    Re: Calling Values subhabangalore@gmail.com - 2012-08-03 11:23 -0700
    Re: Calling Values subhabangalore@gmail.com - 2012-08-03 11:23 -0700
  Re: Calling Values alex23 <wuwei23@gmail.com> - 2012-08-05 19:56 -0700

csiph-web