Как я обнаруживаю, если Python работает как 64-разрядное приложение? [дубликат]

Я думаю, что BOOST_FOREACH, представленный выше, является хорошим и чистым, однако, существует другая опция с помощью ПОВЫШЕНИЯ также.

#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>

std::map<int, int> m;
std::vector<int> keys;

using namespace boost::lambda;

transform(      m.begin(), 
                m.end(), 
                back_inserter(keys), 
                bind( &std::map<int,int>::value_type::first, _1 ) 
          );

copy( keys.begin(), keys.end(), std::ostream_iterator<int>(std::cout, "\n") );

Лично, я не думаю, что этот подход является столь же чистым как подход BOOST_FOREACH в этом случае, но повышение:: лямбда может быть действительно чистой в других случаях.

105
задан Community 23 May 2017 в 11:47
поделиться

2 ответа

import platform
platform.architecture()

Из документации Python :

Запрашивает указанный исполняемый файл (по умолчанию в двоичный файл интерпретатора Python) для различная информация об архитектуре.

Возвращает кортеж (биты, связь), который содержать информацию о долоте архитектура и формат связи используется для исполняемого файла. Оба значения возвращаются в виде строк.

183
ответ дан 24 November 2019 в 03:57
поделиться

Хотя он может работать на некоторых платформах, имейте в виду, что platform.architecture не всегда является надежным способом определить, работает ли python в 32-разрядной или 64-разрядной версии. В частности, в некоторых мультиархитектурных сборках OS X один и тот же исполняемый файл может работать в любом режиме, как показано в примере ниже. Самый быстрый и безопасный многоплатформенный подход - протестировать sys.maxsize на Python 2.6, 2.7, Python 3.x.

$ arch -i386 /usr/local/bin/python2.7
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform, sys
>>> platform.architecture(), sys.maxsize
(('64bit', ''), 2147483647)
>>> ^D
$ arch -x86_64 /usr/local/bin/python2.7
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform, sys
>>> platform.architecture(), sys.maxsize
(('64bit', ''), 9223372036854775807)
61
ответ дан 24 November 2019 в 03:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: