Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #94943
| Date | 2015-08-03 23:57 +0900 |
|---|---|
| From | umedoblock <umedoblock@gmail.com> |
| Subject | Re: how to determine for using c extension or not ? |
| References | <mailman.1170.1438580869.3674.python-list@python.org> <55bf6e6f$0$1650$c3e8da3$5496439d@news.astraweb.com> <55BF7457.8030704@gmail.com> <CAPM-O+wFC3jQzs6hzoK+PrypbYsubTwToVg43zjk_qPhR4T6fQ@mail.gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1193.1438613855.3674.python-list@python.org> (permalink) |
normal, no change >>> import bisect >>> bisect.bisect.__module__ '_bisect' I change from "from _bisect import *" to "pass" in bisect.py >>> import bisect >>> bisect.bisect.__module__ 'bisect' bisect.bisect.__module__ return different results. they are '_bisect' and 'bisect'. I know that c extension document recomended us to use _ for c extension name prefix. I use "bisect.bisect.__module__" sentence to determine for using c extension or not. thanks. On 2015年08月03日 23:11, Joel Goldstick wrote: > On Mon, Aug 3, 2015 at 10:01 AM, umedoblock <umedoblock@gmail.com> wrote: >> sorry, Joel, Skip, Steven, and python-list members. >> >> I think that I don't sent my mail to python-list@python.org or I don't have >> correct mail setting. >> >> so I send many mails. >> >> sorry... I should wait a day to get answer, sorry. >> >> >> On 2015年08月03日 22:36, Steven D'Aprano wrote: >>> >>> On Mon, 3 Aug 2015 03:47 pm, umedoblock wrote: >>> >>>> Hello everyone. >>>> >>>> I use bisect module. >>> >>> >>> You asked the same question FOUR times. Have patience. Your question goes >>> all over the world, people may be asleep, or working, or just not know the >>> answer. If you ask a question, and get no answers, you should wait a full >>> day before asking again. >>> >>> >>>> bisect module developer give us c extension as _bisect. >>>> >>>> If Python3.3 use _bisect, _bisect override his functions in bisect.py. >>> >>> >>> So does Python 2.7. >>> >>> >>>> now, I use id() function to determine for using c extension or not. >>> >>> >>> The id() function doesn't tell you where objects come from or what >>> language >>> they are written in. But they will tell you if two objects are the same >>> object. >>> >>>>>>> import bisect >>>>>>> id(bisect.bisect) >>>> >>>> 139679893708880 >>>>>>> >>>>>>> import _bisect >>>>>>> id(_bisect.bisect) >>>> >>>> 139679893708880 >>>> >>>> they return 139679893708880 as id. >>>> so i believe that i use c extension. >>> >>> >>> Correct. >>> >>> Also, you can do this: >>> >>> >>> py> import bisect >>> py> bisect.__file__ >>> '/usr/local/lib/python2.7/bisect.pyc' >>> py> bisect.bisect.__module__ # Where does the bisect file come from? >>> '_bisect' >>> py> import _bisect >>> py> _bisect.__file__ >>> '/usr/local/lib/python2.7/lib-dynload/_bisect.so' >>> >>> So you can see that _bisect is a .so file (on Linux; on Windows it will be >>> a .dll file), which means written in C. >>> >>> >> >> -- >> https://mail.python.org/mailman/listinfo/python-list > > Welcome to the mailing list, and as I see above, you got a good answer. >
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
how to determine for using c extension or not ? umedoblock <umedoblock@gmail.com> - 2015-08-03 14:47 +0900
Re: how to determine for using c extension or not ? Steven D'Aprano <steve@pearwood.info> - 2015-08-03 23:36 +1000
Re: how to determine for using c extension or not ? umedoblock <umedoblock@gmail.com> - 2015-08-03 23:01 +0900
Re: how to determine for using c extension or not ? Joel Goldstick <joel.goldstick@gmail.com> - 2015-08-03 10:11 -0400
Re: how to determine for using c extension or not ? umedoblock <umedoblock@gmail.com> - 2015-08-03 23:57 +0900
Re: how to determine for using c extension or not ? Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2015-08-03 15:05 +0000
Re: how to determine for using c extension or not ? umedoblock <umedoblock@gmail.com> - 2015-08-04 22:59 +0900
csiph-web