Los diccionarios se pueden inicializar como un diccionario vacío.
#¿Contiene? ltPython.h gt
¿Usar? ¿Espacio de nombres? std
¿Nulo? hola mundo();
¿Nulo? add();
¿Nulo? TestTransferDict();
¿Nulo? clase de prueba();
int? principal()
{
cout? ¿Eh? "¿Primer lanzamiento? Prueba..."? ¿Eh? endl
cout? ¿Eh? "Hola Mundo()-"? ¿Eh? endl
hola mundo();
cout? ¿Eh? "Agregar()-"? ¿Eh? endl
add();
cout? ¿Eh? TestDict-? ¿Eh? endl
TestTransferDict();
cout? ¿Eh? ¿Clase de prueba? ¿Eh? endl
prueba de clase();
Sistema("pausa");
¿Regresar? 0;
}
//Llamar a la salida "¿Hola? Función "Mundo"
¿Nulo? HolaMundo()
{
p>py_Initialize(); // Antes de usar Python, llame a Py_Initialize();
Objeto? *?pModule =?NULL//Declarar variables Objeto? *?pFunc? =?NULL//Variable de declaración
pModule? = py import _ import module ("prueba 001"); // El siguiente es el nombre de archivo de Python. p>
pFunc=?py object_GetAttrString(p module, "hello world");? //Aquí está el nombre de la función que se llamará
pye val_call. NULL);? // Llama a la función, NULL significa que el parámetro está vacío
py_Finalize(); // Llama a Py_Finalize, correspondiente a Py_Initialize
// Llama a la función Agregar. y pasar dos parámetros int
Void? Add()
{
py_Initialize( );
Object *?pModule? =?NULL
Objeto? =?NULL
pModule? "prueba 001"); //Test001: nombre de archivo Python
pFunc=? p módulo, "Agregar"); //agregar: Nombre de la función en el archivo Python
//Crear parámetros:
Número de objeto.
py tuple_SetItem(pArgs,?0,?py_build value("I",?5)); //0-número de serie Me refiero a crear una variable int.
py tuple_SetItem(pArgs,?1,?py_build value("I",?7)); //1-número de serie
//valor de retorno
Objeto? *¿Pre-dirección? =?NULL
¿Adelante? =?pye val _ call object (p func,? pArgs); // Llamar a la función
//Convierte el valor de retorno a tipo int.
int? resultado;
PyArg_Parse(pReturn, ? "i", ? amp resultado); //i significa conversión a variable int.
¿cómo? ¿Eh? "5 7? =?"? ¿Eh? ¿resultado? ¿Eh? endl
py_Finalize();
}
//El tipo de parámetro pasado es diccionario.
¿Nulo? TestTransferDict()
{
py_Initialize();
¿Objeto? *?pMódulo? =?NULL
¿Objeto? *?pFunción? =?NULL
pMódulo? = py import _ import module ("prueba 001"); //Prueba001: nombre del archivo Python
pFunc=? py object_GetAttrString (módulo p, "TestDict");? //agregar: nombre de la función en el archivo Python.
//Parámetros de creación:
¿Objeto? *¿Paquete? =?PyTuple_New(1);?
¿Objeto? *pDict? =?PyDict_New();? //Crear una variable de tipo diccionario
PyDict_SetItemString(pDict,?"Name",?py_build value("s",?"Wang Yao"));? //Rellena la variable de tipo diccionario con datos
PyDict_SetItemString(pDict,?"Age",?py_build value("I",?25));? //Rellena la variable de tipo diccionario con datos
py tuple_SetItem(pArgs, ?0, ?pDict); //0 - Número de serie Agrega la variable de tipo diccionario a la tupla del parámetro.
//Valor de retorno
¿Objeto? *¿Pre-dirección? =?NULL
¿Adelante? =?pye val _ call object (p func,? pArgs); // Llamar a la función
// Valor de retorno del proceso:
int? ¿tamaño? =?PyDict_Size(pReturn);
cout? ¿Eh? "¿El tamaño del diccionario devuelto es:?"? ¿Eh? ¿tamaño? ¿Eh? endl
¿Objeto? *p¿Nueva Era? =?PyDict_GetItemString(pReturn,?"age");
int? nueva era;
PyArg_Parse(pNewAge,? "i",? ampnew age);
cout? ¿Eh? "¿En serio? ¿Edad:?"? ¿Eh? ¿Nueva era? ¿Eh? endl
py_Finalize();
}
//Clase de prueba
¿Nulo? TestClass()
{
py_Initialize();
¿Objeto? *?pMódulo? =?NULL
¿Objeto? *?pFunción? =?NULL
pMódulo? = py import _ import module ("prueba 001"); //Prueba001: nombre del archivo Python
pFunc=? py object_GetAttrString (módulo p, "TestDict");? //agregar: nombre de la función en el archivo Python.
//¿Obtener objeto de clase Persona
? *pPersonaClase? =?py object _ GetAttrString (p módulo, "persona");
//Crea una instancia de la clase Persona.
¿Objeto? *pPersonaInstancia? =?py instancia_New(pclasssperson,?NULL,?NULL);
//Método de llamada
py object_call método(pInstancePerson,?"Saludos",?"s ",? " Hola gatito");? //s significa que se pasa una cadena, con el valor "¿Hola? Gatito"
py _ Finalize();
}#test.py
definición? HolaMundo():
¿Imprimir? "¿Hola? Mundo"
def? Añadir(a,?b):
¿Regresión? una b
definición? Diccionario de prueba (Diccionario):
¿Imprimir? Diccionario
¿Diccionado【"edad"】? =?17
¿Volver? Diccionario
¿Clase? Persona:
def? Saludate greetStr):
¿Imprimir? saludarStr
#Imprimir? Suma (5, 7)
#a? =?raw_input("¿Entrar? ¿Adónde ir? Continuar..." Resultado:
Configuración:
Tenga en cuenta dos puntos:
Si compila la depuración versión, copie python26.lib en C:/Python26/libs y cámbiele el nombre a Python26_d.lib
¿Recuerda poner el directorio actual del proyecto?
¿Pasó la prueba?