Sharing python globals() cross files -


this questions related global-scope of python.

there have 2 files below.

filea.py

import pprint pprint.pprint(globals()) 

fileb.py

import filea  def global_funcb():     return "global_funcb" 

when run python fileb.py. globals() of filea.py contains filea's content.

is possible address of global_funcb in fileb.py filea.py? far, can fileb.py.

note: purpose, there no way import fileb filea.py


[edit]

let me describe purpose clearly.

loader.py

class loader(object):     def __init__(self, module):         print(dir(module)) 

builder.py + class function

import loader  class someobj(object):    def somefunc(self):        pass  loader.loader(someobj) 

if passing module/class fileb build filea, it's possible fetch function of fileb.

however, if function in builder.py globally.

builder.py + global function

import loader  def someglobalfunc(self):    pass  loader.loader(???) 

i have no idea how pass globals() module/class file.

if want globals of file b inside file a after importing in b , use globals in b it's redundant, can simple globals within b , use them.

if want globals , use them a it's not possible because @ time running file a there not b in it's name space obvious.

based on edit:

if going pass multiple global function loader can find functions within global namespace , pass them loader. example can objects have __call__ attribute (if classes , other objects not callable). or more general way use types.functiontype.

from typing import functiontype functions = [obj obj in globals().values() if isinstance(obj, functiontype)] 

the loader class:

class loader:     def __init__(self, *modules):         module in modules:             print(dir(module)) 

your executable file:

import loader typing import functiontype  def someglobalfunc1(self):    pass def someglobalfunc2(self):    pass  functions = [obj obj in globals().values() if isinstance(obj, functiontype)] loader.loader(*functions) 

Comments

Popular posts from this blog

java - SSE Emitter : Manage timeouts and complete() -

jquery - uncaught exception: DataTables Editor - remote hosting of code not allowed -

java - How to resolve error - package com.squareup.okhttp3 doesn't exist? -