Python论坛  - 讨论区

标题:[python-chinese] 被import的B能否知道import他的是谁吗?

2007年07月03日 星期二 15:31

Pang Dawei pangdae在gmail.com
星期二 七月 3 15:31:40 HKT 2007

比如:
A import B
C import B

B能在被A或C import后 知道谁import他了吗?
-----------------
缩小范围再举例:
B中的class CO
A from B import CO
C from B import CO

在CO的实例中能否知道谁import他了吗?

十分感谢

-- 
--Pang Dawei
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070703/0417c150/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月03日 星期二 16:27

lubiao lubiao.py在gmail.com
星期二 七月 3 16:27:26 HKT 2007

我想 可以 把 import 重新 包装。
获得 更多信息

On 7/3/07, Pang Dawei <pangdae at gmail.com> wrote:
> 比如:
> A import B
> C import B
>
> B能在被A或C import后 知道谁import他了吗?
> -----------------
> 缩小范围再举例:
> B中的class CO
> A from B import CO
> C from B import CO
>
> 在CO的实例中能否知道谁import他了吗?
>
> 十分感谢
>
>  --
> --Pang Dawei
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request at lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月03日 星期二 16:54

yuan xuan xuanyuan14.leo在gmail.com
星期二 七月 3 16:54:46 HKT 2007

在B中定义一个函数,从外面传递信息进去可行不?

在07-7-3,lubiao <lubiao.py在gmail.com> 写道:
>
> 我想 可以 把 import 重新 包装。
> 获得 更多信息
>
> On 7/3/07, Pang Dawei <pangdae在gmail.com> wrote:
> > 比如:
> > A import B
> > C import B
> >
> > B能在被A或C import后 知道谁import他了吗?
> > -----------------
> > 缩小范围再举例:
> > B中的class CO
> > A from B import CO
> > C from B import CO
> >
> > 在CO的实例中能否知道谁import他了吗?
> >
> > 十分感谢
> >
> >  --
> > --Pang Dawei
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to
> > python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request在lists.python.cn
> > Detail Info:
> > http://python.cn/mailman/listinfo/python-chinese
> >
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070703/a56fb1f9/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月03日 星期二 17:06

yuan xuan xuanyuan14.leo在gmail.com
星期二 七月 3 17:06:01 HKT 2007

a.py:
def showMe(str):
    print str + " imported " +  __name__
    return
b.py:
import a
_name='b'
a.showMe(_name)

在07-7-3,yuan xuan <xuanyuan14.leo在gmail.com> 写道:
>
> 在B中定义一个函数,从外面传递信息进去可行不?
>
> 在07-7-3,lubiao <lubiao.py在gmail.com> 写道:
> >
> > 我想 可以 把 import 重新 包装。
> > 获得 更多信息
> >
> > On 7/3/07, Pang Dawei <pangdae在gmail.com> wrote:
> > > 比如:
> > > A import B
> > > C import B
> > >
> > > B能在被A或C import后 知道谁import他了吗?
> > > -----------------
> > > 缩小范围再举例:
> > > B中的class CO
> > > A from B import CO
> > > C from B import CO
> > >
> > > 在CO的实例中能否知道谁import他了吗?
> > >
> > > 十分感谢
> > >
> > >  --
> > > --Pang Dawei
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese在lists.python.cn
> > > Subscribe: send subscribe to
> > > python-chinese-request在lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request在lists.python.cn
> > > Detail Info:
> > > http://python.cn/mailman/listinfo/python-chinese
> > >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070703/0d30eb3e/attachment-0001.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月03日 星期二 18:17

Robert Chen search.pythoner在gmail.com
星期二 七月 3 18:17:49 HKT 2007

¿ÉÒÔ¡£

²Î¿¼ÏÂÃæµÄÀý×Ó£º
[A.py]
import B

[C.py]
import B

[B.py]
def who_import_me():
    import sys
    frame = sys._getframe()
    importer_name = frame.f_back.f_back.f_code.co_filename
    return importer_name[:-3]

print 'Hi module %s' % who_import_me()

ÔËÐнá¹û£º
D:\Python Program\import>python A.py
Hi module A

D:\Python Program\import>python C.py
Hi module C

-- 
Robert
PythonÔ´ÂëÆÊÎö¡ª¡ªhttp://blog.donews.com/lemur/
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070703/65c1c93b/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月04日 星期三 09:57

jinq0123在163.com jinq0123在163.com
星期三 七月 4 09:57:19 HKT 2007

佩服!

Robert Chen wrote:
> 可以。
>
> 参考下面的例子:
> [A.py]
> import B
>
> [C.py]
> import B
>
> [B.py]
> def who_import_me():
> import sys
> frame = sys._getframe()
> importer_name = frame.f_back.f_back.f_code.co_filename
> return importer_name[:-3]
>
> print 'Hi module %s' % who_import_me()
>
> 运行结果:
> D:\Python Program\import>python A.py
> Hi module A
>
> D:\Python Program\import>python C.py
> Hi module C
>
> -- 
> Robert
> Python源码剖析――http://blog.donews.com/lemur/
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月04日 星期三 10:33

jinq0123在163.com jinq0123在163.com
星期三 七月 4 10:33:15 HKT 2007

更简洁点。

# a.py
import b

# b.py
import sys
importer = sys._getframe(1).f_code.co_filename
print importer

>>> a
D:/b.py

参考:
ASPN : Python Cookbook : Determining Current Function Name
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66062

Robert Chen wrote:
> 可以。
>
> 参考下面的例子:
> [A.py]
> import B
>
> [C.py]
> import B
>
> [B.py]
> def who_import_me():
> import sys
> frame = sys._getframe()
> importer_name = frame.f_back.f_back.f_code.co_filename
> return importer_name[:-3]
>
> print 'Hi module %s' % who_import_me()
>
> 运行结果:
> D:\Python Program\import>python A.py
> Hi module A
>
> D:\Python Program\import>python C.py
> Hi module C
>
> -- 
> Robert
> Python源码剖析――http://blog.donews.com/lemur/
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号