Python Forum
call a variable from one function to another ...
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
call a variable from one function to another ...
#1
hello all ...
i need to call this variable ( filename )from function qassam() inside another fileex() ..
this is my code :

import os 
def qassam():
        filename = "/root/Downloads/scapy.txt"
        #return filename


def fileex():
    filename = qassam
    if os.path.isfile(filename):
        print("is there")
    else:
        print("else ... ")
        
fileex()
error :
Error:
Traceback (most recent call last): File "/tmp/ArpScanner/arp.py", line 15, in <module> fileex() File "/tmp/ArpScanner/arp.py", line 10, in fileex if os.path.isfile(filename): File "/usr/lib/python2.7/genericpath.py", line 37, in isfile st = os.stat(path) TypeError: coercing to Unicode: need string or buffer, function found
Reply
#2
Function variables are local to function. They cannot be shared.

options.
maybe have function return variable.
import os 
def qassam():
    filename = "/root/Downloads/scapy.txt"
    return filename
 
 
def fileex():
    filename = qassam()
    if os.path.isfile(filename):
        print("is there")
    else:
        print("else ... ")
         
fileex()
Make shared variables
import os 

class ShareVariables:
    filename = ""

def qassam():
    ShareVariables.filename = "/root/Downloads/scapy.txt"
 
 
def fileex():
    if os.path.isfile(ShareVariables.filename):
        print("is there")
    else:
        print("else ... ")

qassum()         
fileex()
My least favorite. Have global variable
import os 
filename = ""

def qassam():
    global filename
    filename = "/root/Downloads/scapy.txt"
 
 
def fileex():
    if os.path.isfile(filename):
        print("is there")
    else:
        print("else ... ")

qassum()         
fileex()
99 percent of computer problems exists between chair and keyboard.
Reply
#3
but how its work while its not global ??? i try to use return and its working :
import os

def qassam():
        filename = "/root/Downloads/scapy.txt"
        return filename


def fileex():
    filename = qassam()
    #x = filename
    print(filename)
    if os.path.isfile(str(filename)):
        print("is there")
    else:
        print("else ... ")
        
fileex()
Reply
#4
Roughly. Low level stuff.
Anytime a function return a variable.
It is put on the stack.
Function closes.
Then stack item is assign to variable.

python bytecode.
import os
import dis

def qassam():
    filename = "/root/Downloads/scapy.txt"
    return filename


def fileex():
    filename = qassam()
    if os.path.isfile(filename):
        print("is there")
    else:
        print("else ... ")

dis.dis(fileex)
Output:
10 0 LOAD_GLOBAL 0 (qassam) 2 CALL_FUNCTION 0 4 STORE_FAST 0 (filename) 11 6 LOAD_GLOBAL 1 (os) 8 LOAD_ATTR 2 (path) 10 LOAD_METHOD 3 (isfile) 12 LOAD_FAST 0 (filename) 14 CALL_METHOD 1 16 POP_JUMP_IF_FALSE 28 12 18 LOAD_GLOBAL 4 (print) 20 LOAD_CONST 1 ('is there') 22 CALL_FUNCTION 1 24 POP_TOP 26 JUMP_FORWARD 8 (to 36) 14 >> 28 LOAD_GLOBAL 4 (print) 30 LOAD_CONST 2 ('else ... ') 32 CALL_FUNCTION 1 34 POP_TOP >> 36 LOAD_CONST 0 (None) 38 RETURN_VALUE
99 percent of computer problems exists between chair and keyboard.
Reply
#5
You do need to call the first function at some point if you want to exploit it later.

One approach, rather than returning a value or using globals is to set an attribute:

import os 
def qassam():
        qassam.filename = "words.csv"
 
def fileex():
    filename = qassam.filename
    if os.path.isfile(filename):
        print("is there")
    else:
        print("else ... ")

qassam()         
fileex()
I am trying to help you, really, even if it doesn't always seem that way
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Variable for the value element in the index function?? Learner1 8 545 Jan-20-2024, 09:20 PM
Last Post: Learner1
  Variable is not defined error when trying to use my custom function code fnafgamer239 4 511 Nov-23-2023, 02:53 PM
Last Post: rob101
  Printing the variable from defined function jws 7 1,161 Sep-03-2023, 03:22 PM
Last Post: deanhystad
  Function parameter not writing to variable Karp 5 892 Aug-07-2023, 05:58 PM
Last Post: Karp
  How do I call sys.argv list inside a function, from the CLI? billykid999 3 752 May-02-2023, 08:40 AM
Last Post: Gribouillis
  Retrieve variable from function labgoggles 2 999 Jul-01-2022, 07:23 PM
Last Post: labgoggles
  Cant transfer a variable onto another function KEIKAS 5 1,835 Feb-09-2022, 10:17 PM
Last Post: deanhystad
  how to call an object in another function in Maya bstout 0 2,042 Apr-05-2021, 07:12 PM
Last Post: bstout
  In this function y initially has no value, but a call to foo() gives no error. Why? Pedroski55 8 3,415 Dec-19-2020, 07:30 AM
Last Post: ndc85430
  Please explain uncommon way of declaring and using variable [function.variable] esphi 4 2,285 Nov-07-2020, 08:59 AM
Last Post: buran

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020