Diesmal ist es also eine Zeigeroperation Um Zeiger in Python zu verwenden, könnte ich Code in Python schreiben, ohne darüber nachzudenken. Ich habe nicht viel gelernt, aber ich werde beschreiben, was ich untersucht habe.
Nach vielen Recherchen fand ich etwas namens ctypes - Externe Funktionsbibliothek für Python. Ich war dankbar, dies zu sehen, da das Tutorial auf Japanisch war, aber da es eine Verwendungsmethode unter Windows war, suchte ich nach verschiedenen Möglichkeiten, es unter Mac [stacoverflow] zu verwenden (http://stackoverflow.com/questions/). 11554355 / mac-os-x-lion-python-ctype-cdll-error-lib-so-6-image-not-found).
Ich habe versucht, es in meiner eigenen Umgebung zu verwenden, daher werde ich es beschreiben.
>>> from ctypes import *
>>> cdll.LoadLibrary("libc.dylib")
<CDLL 'libc.dylib', handle 7fff6903da98 at 0x1052f6fd0>
>>> libc = CDLL("libc.dylib")
>>> printf = libc.printf
>>> printf(b"Hello, %s\n", b"World!")
Hello, World!
14
>>> strchr = libc.strchr
>>> strchr(b"abcdef", ord("d"))
87110915
>>>
Als wichtiges Thema
Es war das, Die folgende Antwort durch Bearbeiten des Array-C ++ - Codes
void append(arrayString& s, char c){
int oldLength = 0;
while(s[oldLength] != 0) {
oldLength++;
}
arrayString newS = new char[oldLength + 2];
for(int i = 0; i < oldLength; i++) {
newS[i] = s[i];
}
newS[oldLength] = c;
newS[oldLength + 1] = 0;
delete[] s;
s = newS;
}
#!/usr/bin/env python
#coding:utf-8
#ctypes Modul(Für Mac)
from ctypes import *
#cdll.LoadLibrary("libc.dylib")
#libc = CDLL("libc.dylib")
def add(s,c):
print('Vorherige Zeichenfolge:',list(s))
print('Vorheriger Zeiger:', c_wchar_p(s))
newlength = len(s)+2
newS = []
for i in s:
newS += i
for j in c:
newS += j
print('Nach der Zeichenfolge:',newS)
print('Späterer Zeiger:', c_wchar_p(str(newS)))
>>>(Ausführungsterminal)
>>> from test38 import add
>>> add("test","! ")
Vorherige Zeichenfolge:['t', 'e', 's', 't']
Vorheriger Zeiger: c_wchar_p(140481723952464)
Nach der Zeichenfolge:['t', 'e', 's', 't', '!', ' ']
Nach dem Zeiger: c_wchar_p(140481723970864)
>>>
Ich brauchte das ctypes-Modul nicht wirklich, aber ich habe gelernt, dass Python auch C verwenden kann.