This is a much-simplified version of my program but has the same idea: def calc():    x=1    y=2    z=6 def output():    final=x+y+z  how can I use the return values in the first function to be used in the second?
The canonical way to return multiple values in languages that support it is often . Option: Using a tuple Consider this trivial example: def f(x):   y0 = x + 1   y1 = x * 3   y2 = y0 ** y3   return (y0, y1, y2)  However, this quickly gets problematic as the number of values returned increases. What if you want to return four or five values? Sure, you could keep tupling them, but it gets easy to forget which value is where. It's also rather ugly to unpack them wherever you want to receive them. Option: Using a dictionary The next logical step seems to be to introduce some sort of 'record notation'. In Python, the obvious way to do this is by means of a dict. Consider the following: def g(x):   y0 = x + 1   y1 = x * 3   y2 = y0 ** y3   return {'y0': y0, 'y1': y1 ,'y2': y2}  (Just to be clear, y0, y1, and y2 are just meant as abstract identifiers. As pointed out, in practice you'd use meaningful identifiers.) Now, we have a mechanism whereby we can project out a particular member of the returned object. For example, result['y0']  Option: Using a class However, there is another option. We could instead return a specialized structure. I've framed this in the context of Python, but I'm sure it applies to other languages as well. Indeed, if you were working in C this might very well be your only option. Here goes: class ReturnValue:   def __init__(self, y0, y1, y2):      self.y0 = y0      self.y1 = y1      self.y2 = y2  def g(x):   y0 = x + 1   y1 = x * 3   y2 = y0 ** y3   return ReturnValue(y0, y1, y2)  In Python the previous two are perhaps very similar in terms of plumbing - after all { y0, y1, y2 } just end up being entries in the internal __dict__ of the ReturnValue. There is one additional feature provided by Python though for tiny objects, the __slots__ attribute. The class could be expressed as: class ReturnValue(object):   __slots__ = [&quot;y0&quot;, &quot;y1&quot;, &quot;y2&quot;]   def __init__(self, y0, y1, y2):      self.y0 = y0      self.y1 = y1      self.y2 = y2  From the :  The __slots__ declaration takes a sequence of instance variables and reserves just enough space in each instance to hold a value for each variable. Space is saved because __dict__ is not created for each instance.  Option: Using a  (Python 3.7+) Using Python 3.7's new dataclasses, return a class with automatically added special methods, typing and other useful tools: @dataclass class Returnvalue:     y0: int     y1: float     y3: int  def total_cost(x):     y0 = x + 1     y1 = x * 3     y2 = y0 ** y3     return ReturnValue(y0, y1, y2)  Option: Using a list Another suggestion which I'd overlooked comes from Bill the Lizard: def h(x):   result = [x + 1]   result.append(x * 3)   result.append(y0 ** y3)   return result  This is my least favorite method though. I suppose I'm tainted by exposure to Haskell, but the idea of mixed-type lists has always felt uncomfortable to me. In this particular example the list is -not- mixed type, but it conceivably could be. A list used in this way really doesn't gain anything with respect to the tuple as far as I can tell. The only real difference between lists and tuples in Python is that lists are , whereas tuples are not. I personally tend to carry over the conventions from functional programming: use lists for any number of elements of the same type, and tuples for a fixed number of elements of predetermined types. Question After the lengthy preamble, comes the inevitable question. Which method (do you think) is best?
Some websites have code to "break out" of IFRAME enclosures, meaning that if a page A is loaded as an IFRAME inside an parent page P some Javascript in A redirects the outer window to A.  Typically this Javascript looks something like this:  &lt;script type="text/javascript"&gt;   if (top.location.href != self.location.href)      top.location.href = self.location.href; &lt;/script&gt;   My question is: As the author of the parent page P and not being the author of the inner page A, how can I prevent A from doing this break-out?  P.S. It seems to me like it ought to be a cross-site security violation, but it isn't. I was recently in a bit of a quandary over which answer to accept to .  Of the answers I got, two were the clear leaders and, of course, I up-voted both. Choosing a 'winner' was more difficult though as their approaches were quite different.  Answer A addressed my question and provided a clear and well thought out response. I'd anticipate that this answer would be of most use to a user who found my question via a search. Selecting this would probably be the more community-focused way to go.  Answer B took a more lateral approach and made some guesses at the business logic behind my request, suggesting that I might be asking the wrong question. Their solution was based on this assumption - and they were spot on. Answer B formed the basis of my fix for the problem.  So... Best answer to the question or best solution to the problem - they may not always be the same thing.   I took the selfish approach and went with B. I'm not losing sleep over it, but I do wonder if I did the right thing? Are PDO prepared statements sufficient to prevent SQL injection? Let's say I have code like this:  $dbh = new PDO("blahblah");  $stmt = $dbh-&gt;prepare('SELECT * FROM users where username = :username'); $stmt-&gt;execute( array(':username' =&gt; $_REQUEST['username']) );   The PDO documentation says:     The parameters to prepared statements don't need to be quoted; the driver handles it for you.   Is that truly all I need to do to avoid SQL injections?  Is it really that easy?  You can assume MySQL if it makes a difference.  Also, I'm really only curious about the use of prepared statements against SQL injection.  In this context, I don't care about XSS or other possible vulnerabilities. Meaning of telegraph code in the song "Planetes" The song Planetes in Guilty Crown begins with some telegraph encoding, which I think is . Here is the . My transcription is: -•-• -••-- •-- --•-- •- --•-• •-•-- -•--•  which decodes to this:  ni-yu-ya a-i-shi-te-ru  Niyuya didn't make sense. Did I get something wrong? Are there any non-decreasing securities on the stock market? Are there any securities traded on the stock market (i.e. ETPs) that never decrease in value?    As an aside (in case anyone mentions bonds):  I'm aware there's ETFs for AAA-rated government bonds, but even these dip significantly.  For example, the  has dipped by 9% in a 85-day period before (21/08/2016 to 13/11/2016). Mobile notifications unread status independent from full site inbox and achievements Simplifying the integral $\int\frac{dx}{(3 + 2\sin x - \cos x)}$ by an easy approach Is there anything I can do about someone who has pointed their domain at my ip? This is kind of a weird request. For some reason whoever owns safeandbuy.com has pointed their domain at my IP address. The reason it's a problem is that I'm having all kinds of crawlers that are trying to crawl my site with that domain name.   Is there anything I can do about this? What are the badges I can earn on each site, and what are the exact criteria for earning each badge? Formerly List of all badges with full descriptions.  What are badge name's requirements? Why didn't I get badge name ? Which badges can I earn multiple times?    Jump to:                    Note: Some badges are awarded based on score. The term score means the total number of upvotes minus the total number of downvotes.  Any badge with a *** next to it is one of 20 badges that count towards the  displayed on a moderator candidate in an election. The candidate score is a total of 40 points: the first 20 are awarded based on the user's rep divided by 1000 and rounded down; the second 20 represents the total number of unique badges earned of the 20 that count. Note that if the same badge is earned multiple times, it will only count once towards the candidate score.  Any badge with a &quot;(retired)&quot; next to it is no longer awarded, but is retained by users who previously earned them. See  for more info on what it means for a badge to be retired.       Visit the  of the  on any site to see a complete list of badges that you can filter by earned, unearned, or type. Dictionary application needs to download dictionary "Apple Dictionary" before use Loading PyQt5 modules from QGIS3/PyQGIS I am trying to talk to the PyQGIS API for use in a 3rd party application using the offical .dmg image provided on the QGIS homepage.  After setting PYTHONPATH to /Applications/QGIS3.4.app/Contents/Resources/python and initializing everything as stated in , I am facing the following error when running from PyQt5.QtGui import or from qgis import *:    ImportError: dlopen(/Applications/QGIS3.4.app/Contents/Resources/python/PyQt5/QtGui.so, 2): Library not loaded: @executable_path/../Frameworks/QtGui.framework/QtGui   Referenced from: /Applications/QGIS3.4.app/Contents/Resources/python/PyQt5/QtGui.so   Reason: image not found   Looks like I need to set some linkers or similar?   Side facts: - I have no problems when using the homebrew version of QGIS). - I am on macOS 10.14.6 (Mojave) I am looking to set up Ubuntu Server as a headless NAS for my home. I would like to have file storage there, as well as a central hub for my MP3s and pictures.  What are the best packages out there to handle this? Can someone post a link to a good tutorial or post some tips?  One constraint I have is that it has to be Windows 7 friendly. By that I mean the shares and streaming should work for a Windows machine. Growing a PostGIS geometry by a percentage How to map stock ticker symbols to ISIN (International Securities Identification Number)? How can I can convert ticker symbols (which include information on the exchange) to an International Securities Identification Number (ISIN) (which contains no information on the exchange)? Also I am interested in the other way round — given an ISIN and a market identification code (MIC) how can I determine the ticker symbol? Any databases around? Can someone define what exactly 'POCO' means? I am encountering the term more and more often, and I'm wondering if it is only about plain classes or it means something more? How does printf with multiple arguments separated by space work I have the following printf function:  $ printf '%s %s %s\t%s\n' 100644 blob 8e1e f1.txt 100644 blob 9de7 f2.txt | git mktree   Can anyone please explain what it produces and why? I expected to have equal number of formatting options %s for each argument string but I have a lot more arguments strings here. Modular arithmetic: division, fractions, solving linear congruences Given that the sequence $(v,Av,A^2v,...,A^nv)$ is linearly dependent (1), $A_{n \times n}$, over $\mathbb{F^n}$ prove that scalars $c_0,c_1,..,c_n$ exist (such that not all of them are zeroes) such that the matrix $M=c_0I+c_1A+..+c_nA^n$ is singular.    First I'm not sure how (*) can be used here exactly. We can say that the sequence $(c_0I,c_1A,..,c_nA^n)$ resembles the sequence (1) where $v=I$. But here we have scalar $c_i$ so it's not exactly the same sequence.   Maybe I could say that the sequence $(c_0I,c_1A,..,c_nA^n)$ is linearly dependent because it has $n+1$ elements while over $dim\mathbb{F^n}=n$ $\quad$(2).  Intuitively I understand that suppose we sum all the matrices $c_iA^i$ and then in the last sum operation we get to some $c_jA^j$ and if it's a linear combination of other matrices then we can have such a $c_j$ that: $$ c_oI+\sum_{i=1}^{n-1} c_iA^i+c_jA^j=0 $$ But I don't think this is enough to prove. $C \otimes A \cong C \otimes B$ does not imply $A \cong B$ Let $R$ be a commutative unital ring and let $M$ be an $R$-module and let $S$ be a multiplicative subset of $R$.  Today I proved both of the following: $$ S^{-1} R\otimes_R S^{-1}M \cong S^{-1} M$$ and $$ S^{-1} R \otimes M \cong S^{-1} M$$  Now I'm slightly confused.      Either my proofs are wrong or $C \otimes A \cong C \otimes B$ does not imply $A \cong B$. But I can't come up with an example. Can someone give me an example? (Or tell me that my proofs are wrong.) How can I switch between starting a coroutine vs running the routine all at once? I'm generating a level, and I have an optional delay to show the steps level generation one by one.  If my generationDelay boolean is true, I want to use StartCoroutine to spread the generation out over time. If it's false, I want to call the same method but without StartCoroutine.  The problem is that the method is type IEnumerator.  I can make two methods one type of IEnumerator and one not. But I wonder if there is a way to use one method.  In the first script top i did:  public bool generationDelay = false;   Then in a method:  private void BeginGame()     {         mazeInstance = Instantiate(mazePrefab) as Maze;          if (generationDelay == true)         {             StartCoroutine(mazeInstance.Generate(generationDelay));         }         else         {             mazeInstance.Generate(generationDelay);         }     }   Then the other script where the method Generate is: In the top:  public float generationStepDelay = 0.01f;   Then the method Generate:  public IEnumerator Generate (bool generationDelay) {          if (generationDelay == true)             WaitForSeconds delay = new WaitForSeconds(generationStepDelay);         cells = new MazeCell[size.x, size.z];         List&lt;MazeCell&gt; activeCells = new List&lt;MazeCell&gt;();         DoFirstGenerationStep(activeCells);         while (activeCells.Count &gt; 0) {             yield return delay;             DoNextGenerationStep(activeCells);         }     }   I'm getting an error on the line:   WaitForSeconds delay = new WaitForSeconds(generationStepDelay);      "Embedded statement cannot be a declaration or labeled statement"   And an error on the line:  yield return delay;      "The name 'delay' does not exist in the current context"   The reason I want to use a bool variable is that when i'm using StartCoroutine it's kind of slow, even if I change the value of generationStepDelay to 0 it's kind of slow. And if I'm not using StartCoroutine and not using the Generate method as IEnumerator it will work fast.  So i wonder what should I do and how?