CodeBlanks Logo Icon CodeBlanks

Structure

ctypes.Structure ile C struct'ı öğrenirsin.

Structure nedir?

ctypes.Structure, C struct'larını Python'da temsil eder. _fields_ listesi ile alan adlarını ve türlerini belirtirsin.

Örneğin class Point(Structure): _fields_ = [('x', c_int), ('y', c_int)] tanımı, x ve y alanlarına sahip bir yapı oluşturur. p = Point(3, 4) ile örnekler, p.x ile erişirsin. Bu, C kütüphanelerindeki yapıları doğrudan Python'da kullanmayı sağlar ve ikili veri okumada çok yararlıdır.

Alan erişimi

Bir Structure örneği oluşturduktan sonra alanlara nokta ile erişirsin: p.x, p.y. Hem okuma hem yazma yapılabilir.

Alan sırası _fields_ listesinin sırasıyla aynıdır. Point(3, 4) çağrısı ilk alanı 3, ikinciyi 4 yapar. İç içe yapılar da desteklenir: bir alanın türü başka bir Structure olabilir. Bu, C'deki karmaşık veri yapılarını Python'da kolayca modellemeyi sağlar.

Uygulama Structure ile nokta tanımla

import ctypes ile modülü içe aktar. Point(ctypes.Structure) sınıfı yaz; _fields_ = [('x', ctypes.c_int), ('y', ctypes.c_int)] tanımla. Point(3, 4) ile örnek oluştur ve p.x ve p.y'yi yazdır.

Başlangıç kodu

main.py
# Point yapısı yaz
# örnek oluştur ve yazdır

Örnek çözüm

main.py
import ctypes

class Point(ctypes.Structure):
    _fields_ = [("x", ctypes.c_int), ("y", ctypes.c_int)]

p = Point(3, 4)
print(p.x, p.y)

Beklenen çıktı

3 4

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Structure hangi özniteliği kullanır?

main.py
class Point(ctypes.Structure):
    _fields_ = [('x', c_int)]
  • __init__
  • __dict__
  • __slots__
  • _fields_ Doğru cevap

Açıklama: Bu liste alan adlarını ve türlerini tanımlar.

2 Structure kavramlarını eşleştir

Kavram Anlamı
Structure C struct temeli
_fields_ Alan listesi
Point(3,4) Örnek oluşturma
p.x Alan erişimi

3 Structure tanımını tamamla

Soru
class Point(ctypes.____):
    _fields_ = [('x', c_int)]
Cevap
class Point(ctypes.Structure):
    _fields_ = [('x', c_int)]

Açıklama: Bir yapı ctypes.Structure'dan türetilir.

Uzman bölümündeki tüm dersler