LINUX.ORG.RU

История изменений

Исправление tailgunner, (текущая версия) :

Ну я так и понял.

# mod1.py

import api

api.whatever.fun1()
api.whatever.fun2()
# api.py

import ctypes as ct

libself = ct.CDLL(None)
# здесь можно делать что угодно

class YouDontNeedThisButOhWell:
  def fun1():
    # здесь тоже можно делать что угодно
    libself.handler()

  def fun2():
    # и здесь тоже
    libself.handler()

whatever = YouDontNeedThisButOhWell()

(можно сделать и нормальную иерархию модулей вместо класса YouDontNeedThisButOhWell)

заставлять каждый модуль делать вызов через обертку с подстановкой первым аргументом имени самого метода. но этот вариант на самый крайний случай ибо говнокод.

Как по мне, так вкрячивание объектов в неймспейс из Си (ты ведь это пытаешься сделать?) - гораздо худший говнокод.

Исходная версия tailgunner, :

Ну я так и понял.

# mod1.py

import api

api.whatever.fun1()
api.whatever.fun2()
# api.py

import ctypes as ct

libself = ct.CDLL(None)
# здесь можно делать что угодно

class YouDontNeedThisButOhWell:
  def fun1():
    # здесь тоже можно делать что угодно
    libself.handler()

  def fun2():
    # и здесь тоже
    libself.handler()

whatever = YouDontNeedThisButOhWell()

(можно сделать и нормальную иерархию модулей вместо класса YouDontNeedThisButOhWell)

заставлять каждый модуль делать вызов через обертку с подстановкой первым аргументом имени самого метода. но этот вариант на самый крайний случай ибо говнокод.

Как по мне, так вкрячивание объектов в неймспейс из Си (ты ведб это пытаешься сделать?) - гораздо худший говнокод.