国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python 全局變量的import機制介紹

2020-02-16 10:10:55
字體:
供稿:網(wǎng)友

先把有問題的代碼曬一下:

IServer.py

from abc import ABCMeta, abstractmethodprint __name__class IServer:  def __init__(self):    pass  @abstractmethod  def DoWithA(self):    pass  @abstractmethod  def DoWithB(self):    pass

IServer_A.py

import IServerserverType ='1001'print __name__dir()from CreatFactory import GLOBAL_class_dicdir()class IServer_A(IServer.IServer):  def __init__(self):    pass  def DoWithA(self):    print 'Server_A do with interface A'  def DoWithB(self):    print 'Server_A do with interface B'global GLOBAL_class_dicprint 'the id of GLOBAL_class_dic in A is:',id(GLOBAL_class_dic)GLOBAL_class_dic[serverType] = IServer_Aprint 'GLOBAL_class_dic in a is:', GLOBAL_class_dic

IServer_B.py

import IServerserverType ='1002'from CreatFactory import GLOBAL_class_dicprint __name__class IServer_B(IServer.IServer):  def __init__(self):    pass  def DoWithA(self):    print 'Server_B do with interface A'  def DoWithB(self):    print 'Server_B do with interface B'print 'the id of GLOBAL_class_dic in B is:',id(GLOBAL_class_dic)GLOBAL_class_dic[serverType] = IServer_Bprint 'GLOBAL_class_dic in b is:', GLOBAL_class_dic

CreatFactory.py

#coding:UTF-8import os;import sys;import threadingfrom misc import *global GLOBAL_class_dicGLOBAL_class_dic ={1:1}print 'GLOBAL_class_dic in define is:', GLOBAL_class_dicprint 'the id of GLOBAL_class_dic in define is:', id(GLOBAL_class_dic)dir()import IServer_Aimport IServer_Bdef CreateServer(serverType):  global GLOBAL_class_dic  print 'GLOBAL_class_dic in use is:', GLOBAL_class_dic  print 'the id of GLOBAL_class_dic in USE is:', id(GLOBAL_class_dic)  if GLOBAL_class_dic.has_key(serverType):    return GLOBAL_class_dic[serverType]  else:    return 'no'if __name__ == '__main__':  pass  # 接收到報文后,根據(jù)報文的內(nèi)容,從db中獲取到serverType,假設(shè)獲取到的serverType=1001  print 'main'  print 'GLOBAL_class_dic in main A is:', GLOBAL_class_dic  serverType = '1002'  server = CreateServer(serverType)  print 'GLOBAL_class_dic in main B is:', GLOBAL_class_dic  print 'server :',server  server.DoWithA(server())

代碼內(nèi)已經(jīng)加了調(diào)試的部分信息, 運行CreatFactory.py。調(diào)用DoWithA失敗,提示AttributeError: 'str' object has no attribute 'DoWithA'。運行結(jié)果如下:

D:/Python27/python.exe "D:/DesignMode/Server --00/CreatFactory.py"GLOBAL_class_dic in define is: {1: 1}the id of GLOBAL_class_dic in define is: 36230176['GLOBAL_class_dic', 'Misc', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'binascii', 'inspect', 'minidom', 'os', 'struct', 'sys', 'threading']IServerIServer_A['IServer', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'serverType']GLOBAL_class_dic in define is: {1: 1}the id of GLOBAL_class_dic in define is: 36230032['GLOBAL_class_dic', 'Misc', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'binascii', 'inspect', 'minidom', 'os', 'struct', 'sys', 'threading']['IServer', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'serverType']['GLOBAL_class_dic', 'IServer', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'serverType']IServer_Bthe id of GLOBAL_class_dic in B is: 36230032GLOBAL_class_dic in b is: {1: 1, '1002': <class IServer_B.IServer_B at 0x022C2ED8>}['GLOBAL_class_dic', 'IServer', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'serverType']the id of GLOBAL_class_dic in A is: 36230032GLOBAL_class_dic in a is: {1: 1, '1002': <class IServer_B.IServer_B at 0x022C2ED8>, '1001': <class IServer_A.IServer_A at 0x02273420>}mainGLOBAL_class_dic in main A is: {1: 1}GLOBAL_class_dic in use is: {1: 1}the id of GLOBAL_class_dic in USE is: 36230176GLOBAL_class_dic in main B is: {1: 1}server : noTraceback (most recent call last): File "D:/DesignMode/Server --00/CreatFactory.py", line 38, in <module>  server.DoWithA(server())AttributeError: 'str' object has no attribute 'DoWithA'Process finished with exit code 1            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 神木县| 荆州市| 莒南县| 翼城县| 黄浦区| 库尔勒市| 阿拉善左旗| 平舆县| 克东县| 基隆市| 鄂托克前旗| 黑龙江省| 灵丘县| 巨野县| 台北市| 轮台县| 依安县| 土默特右旗| 富裕县| 抚顺县| 安平县| 司法| 和平区| 香港 | 大同市| 铜川市| 陇南市| 绩溪县| 同德县| 北安市| 凤冈县| 梓潼县| 农安县| 台前县| 南昌县| 长岭县| 深泽县| 沂源县| 花莲县| 尼玛县| 册亨县|