Why does name error occur when module is run by importing but not when run from scrip

all i am trying is to is add more items to dictionary and populate with second button if necessary!!! everything goes fine, on running code from maya script editor by clicking on the blue play button but if i import this script import funtest funtest.main()

the window loads up fine but i get error on clicking either of the buttons … So please tell me why is their a difference between executing the code from script editor and the other one by importing…

it shouild be same or if it is what is wrong with my logic ?

import maya.cmds as cmds
dic={}
print("dictionary is empty",dic)
def main():
	inst=btnUI()
	inst.create()
	
	
class btnUI(object):
	def __init__(self, winName="winTheWindow"):
		self.winTitle = "The Window"
		self.winName = winName

	def create(self):
		if cmds.window(self.winName, exists=True):
			cmds.deleteUI(self.winName)
		dic['item1']='item1value'
		dic['item2']='item2value'
		
		cmds.window(self.winName, title=self.winTitle)
		self.mainCol = cmds.columnLayout( adjustableColumn=True )
		self.btnA = cmds.button( label='Press Me - External Func',c='outsideFunc(dic)' )
		self.btnb = cmds.button( label='Populate more items',c='populateDic()' )
		cmds.showWindow( self.winName )
		cmds.window(self.winName, edit=True, widthHeight=[250,75])
		


def populateDic():
	dic['item3']='item3value'
	dic['item4']='item4value'
	dic['item5']='item5value'

def outsideFunc(dicItems):
	print("Outside function, called from inside a class function")
	print(dicItems)
	
if __name__ == '__main__':
	main()

Its because your main() function is running only when the script is run in the main namespace (your last couple lines of code)
Typically for a maya cmds UI, you never need to have this name check because the UI can only run inside Maya.

That namecheck is usually for UI’s or tools that need to run differently depending on whether they’re imported or just run: ie a pyQt UI that can run independently of Maya.

I understood, so I came up with a solution by using partial from function tools!!! btw I meant import funtest from Maya command line at the bottom to launch a gui from inside maya…