شیءهای توصیفگر¶
«توصیفگرها» اشیایی هستند که ویژگیای از یک شیء را توصیف میکنند. آنها در دیکشنری اشیاء نوع یافت میشوند.
-
PyTypeObject PyProperty_Type¶
- قسمتی از ABI پایدار.
شیء نوع برای نوعهای توصیفگر توکار.
-
PyObject *PyDescr_NewGetSet(PyTypeObject *type, struct PyGetSetDef *getset)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.
یک توصیفگر دریافت-تنظیم (get-set) جدید برای نوع توسعهای type از ساختار
PyGetSetDefبا نام getset میسازد.توصیفگرهای دریافت-تنظیم (get-set) ویژگیهایی را در دسترس قرار میدهند که بهجای ذخیرهشدن مستقیم در نمونه، توسط توابع getter و setter زبان C پیادهسازی شدهاند. این همان نوع توصیفگری است که برای ورودیهای
tp_getsetایجاد میشود و در پایتون بهصورت یک شیءtypes.GetSetDescriptorTypeظاهر میشود.در صورت موفقیت، یک ارجاع قوی به توصیفگر برمیگرداند. در صورت شکست،
NULLهمراه با یک استثنای تنظیمشده برمیگرداند.
-
PyObject *PyDescr_NewMember(PyTypeObject *type, struct PyMemberDef *member)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.
یک توصیفگر عضو جدید برای نوع توسعهای type از ساختار
PyMemberDefبه نام member ایجاد میکند.توصیفگرهای عضو، فیلدهای موجود در ساختار C نوع را بهعنوان ویژگیهای پایتون در دسترس قرار میدهند. این همان نوع توصیفگری است که برای ورودیهای
tp_membersایجاد میشود و در پایتون بهصورت شیءtypes.MemberDescriptorTypeظاهر میشود.در صورت موفقیت، یک ارجاع قوی به توصیفگر برمیگرداند. در صورت شکست،
NULLهمراه با یک استثنای تنظیمشده برمیگرداند.
-
PyTypeObject PyMemberDescr_Type¶
- قسمتی از ABI پایدار.
شیء نوع برای اشیاء توصیفگر عضو که از ساختارهای
PyMemberDefایجاد میشوند. این توصیفگرها فیلدهای یک ساختار C را بهعنوان ویژگیهایی روی یک نوع در دسترس قرار میدهند و متناظر با اشیاءtypes.MemberDescriptorTypeدر پایتون هستند.
-
PyTypeObject PyGetSetDescr_Type¶
- قسمتی از ABI پایدار.
شیء نوع برای اشیای توصیفگر get/set که از ساختارهای
PyGetSetDefایجاد میشوند. این توصیفگرها ویژگیهایی را پیادهسازی میکنند که مقدار آنها توسط توابع getter و setter زبان C محاسبه میشود و برای بسیاری از ویژگیهای انواع توکار به کار میروند. آنها معادل اشیایtypes.GetSetDescriptorTypeدر پایتون هستند.
-
PyObject *PyDescr_NewMethod(PyTypeObject *type, struct PyMethodDef *meth)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.
یک توصیفگر متد جدید برای نوع توسعهای type از ساختار
PyMethodDefبه نام meth ایجاد کنید.توصیفگرهای متد، توابع C را بهصورت متدهایی روی یک نوع در دسترس قرار میدهند. این همان نوع توصیفگری است که برای ورودیهای
tp_methodsایجاد میشود و در پایتون بهصورت شیءtypes.MethodDescriptorTypeظاهر میشود.در صورت موفقیت، یک ارجاع قوی به توصیفگر برمیگرداند. در صورت شکست،
NULLهمراه با یک استثنای تنظیمشده برمیگرداند.
-
PyTypeObject PyMethodDescr_Type¶
- قسمتی از ABI پایدار.
شیء نوع برای اشیاء توصیفگر متد که از ساختارهای
PyMethodDefایجاد شدهاند. این توصیفگرها توابع C را بهعنوان متدهایی روی یک نوع در دسترس قرار میدهند و معادل اشیاءtypes.MethodDescriptorTypeدر پایتون هستند.
-
struct wrapperbase¶
یک دربرگیرندهی جایگاه را توصیف میکند که توسط
PyDescr_NewWrapper()استفاده میشود.هر رکورد
wrapperbaseنام قابلمشاهده در پایتون و فرادادهی متد ویژهای را که توسط یک جایگاه نوع پیادهسازی شده است، به همراه تابع پوششیای که برای تطبیق آن جایگاه با قرارداد فراخوانی پایتون استفاده میشود، ذخیره میکند.
-
PyObject *PyDescr_NewWrapper(PyTypeObject *type, struct wrapperbase *base, void *wrapped)¶
- مقدار بازگشتی: مرجع جدید.
یک توصیفگر پوششی جدید برای نوع توسعهای type از ساختار
wrapperbaseبه نام base و اشارهگر تابع جایگاه دربرگرفتهشده به نام wrapped میسازد.توصیفگرهای پوششی، متدهای ویژهای را که توسط جایگاههای نوع پیادهسازی شدهاند، در دسترس قرار میدهند. این همان نوع توصیفگری است که سیپایتون برای متدهای ویژهی مبتنی بر جایگاه مانند
__repr__یا__add__ایجاد میکند و در پایتون بهصورت یک شیءtypes.WrapperDescriptorTypeظاهر میشود.در صورت موفقیت، یک ارجاع قوی به توصیفگر برمیگرداند. در صورت شکست،
NULLهمراه با یک استثنای تنظیمشده برمیگرداند.
-
PyTypeObject PyWrapperDescr_Type¶
- قسمتی از ABI پایدار.
شیء نوع برای اشیاء توصیفگر پوششی که توسط
PyDescr_NewWrapper()وPyWrapper_New()ایجاد میشوند. توصیفگرهای پوششی بهطور داخلی برای در دسترس قرار دادن متدهای ویژهای که از طریق ساختارهای پوششی پیادهسازی شدهاند استفاده میشوند و در پایتون بهصورت اشیاءtypes.WrapperDescriptorTypeظاهر میشوند.
-
PyObject *PyDescr_NewClassMethod(PyTypeObject *type, PyMethodDef *method)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.
یک توصیفگر متد کلاس جدید برای نوع توسعهای type از ساختار
PyMethodDefبه نام method ایجاد میکند.توصیفگرهای متد کلاس، متدهای C را نمایان میکنند که هنگام دسترسی، کلاس را به جای نمونه دریافت میکنند. این همان نوع توصیفگری است که برای ورودیهای
METH_CLASSدرtp_methodsایجاد میشود و در پایتون به صورت شیءtypes.ClassMethodDescriptorTypeظاهر میشود.در صورت موفقیت، یک ارجاع قوی به توصیفگر برمیگرداند. در صورت شکست،
NULLهمراه با یک استثنای تنظیمشده برمیگرداند.
-
int PyDescr_IsData(PyObject *descr)¶
اگر شیء توصیفگر descr یک ویژگی دادهای را توصیف کند، مقدار ناصفر را برمیگرداند و اگر متدی را توصیف کند،
0را برمیگرداند. descr باید یک شیء توصیفگر باشد؛ هیچ بررسی خطایی انجام نمیشود.
-
PyObject *PyWrapper_New(PyObject *d, PyObject *self)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.
یک شیء پوششی مقید جدید از توصیفگر پوششی d و نمونه self ایجاد کنید.
این، شکل مقیدِ یک توصیفگر پوششی (wrapper descriptor) است که توسط
PyDescr_NewWrapper()ایجاد شده است. سیپایتون این اشیاء را زمانی ایجاد میکند که از طریق یک نمونه به یک پوششدهنده جایگاه (slot wrapper) دسترسی پیدا شود، و آنها در پایتون بهصورت اشیاءtypes.MethodWrapperTypeظاهر میشوند.در صورت موفقیت، یک ارجاع قوی به شیء پوششی برمیگرداند. در صورت شکل،
NULLرا همراه با یک استثنای تنظیمشده برمیگرداند.
توصیفگرهای توکار¶
-
PyTypeObject PySuper_Type¶
- قسمتی از ABI پایدار.
شیء نوع برای اشیای super. این همان شیء
superدر لایهی پایتون است.
-
PyTypeObject PyClassMethod_Type¶
نوع اشیای متد کلاس. این همان شیء
classmethodدر لایه پایتون است.
-
PyTypeObject PyClassMethodDescr_Type¶
- قسمتی از ABI پایدار.
شیء نوع برای اشیاء توصیفگر متد کلاس در سطح C. این همان نوع توصیفگرهایی است که برای
classmethod()تعریفشده در نوعهای توسعهای C ایجاد میشوند و با اشیاءtypes.ClassMethodDescriptorTypeدر پایتون مطابقت دارد.
-
PyObject *PyClassMethod_New(PyObject *callable)¶
یک شیء جدید
classmethodمیسازد که callable را در بر میگیرد. callable باید یک شیء فراخوانیپذیر باشد و نبایدNULLباشد.در صورت موفقیت، این تابع یک ارجاع قوی به یک توصیفگر جدید متد کلاس برمیگرداند. در صورت شکست، این تابع
NULLرا همراه با یک استثنای تنظیمشده برمیگرداند.
-
PyTypeObject PyStaticMethod_Type¶
نوع اشیاء متد ایستا. این همان شیء
staticmethodدر لایهی پایتون است.
-
PyObject *PyStaticMethod_New(PyObject *callable)¶
یک شیء
staticmethodجدید ایجاد میکند که callable را دربر میگیرد. callable باید یک شیء فراخوانیپذیر باشد و نبایدNULLباشد.در صورت موفقیت، این تابع یک ارجاع قوی به توصیفگر جدید متد ایستا برمیگرداند. در صورت شکست، این تابع
NULLرا همراه با یک استثنای تنظیمشده برمیگرداند.