Python 在类方法(如调用)内实现__

Python 在类方法(如调用)内实现__,python,python-3.x,Python,Python 3.x,因此,我创建了一个模块,在这个模块中,我可以将shell程序作为函数导入;与sh不同,我的模块可以直接执行类似于git(C=path).commit(m=message)的操作,方法是将模块类本身作为部分返回:return partial(bakery,self.program)。但是,如果没有像ls.\uz()这样的占位符方法,我已经失去了运行像ls()这样的东西的能力,这看起来不太好。后者中的代码:将输出返回为列表(args,kwargs) 从functools导入部分 def_u_geta

因此,我创建了一个模块,在这个模块中,我可以将shell程序作为函数导入;与
sh
不同,我的模块可以直接执行类似于
git(C=path).commit(m=message)
的操作,方法是将模块类本身作为部分返回:
return partial(bakery,self.program)
。但是,如果没有像
ls.\uz()
这样的占位符方法,我已经失去了运行像
ls()
这样的东西的能力,这看起来不太好。后者中的代码:
将输出返回为列表(args,kwargs)

从functools导入部分
def_u_getattr__(名称):
如果名称=“\uuuu路径”:
提高属性错误
返回面包店(名称)
高级面包店:
定义初始化(自我,程序):
self.program=程序
def uu getattr u(self,子命令):
返回子命令
@财产
定义呼叫(自我):
返回部分(面包店、自助程序)
我的问题是:

有没有一种方法可以告诉
\uuu call\uu
您正在访问一个动态属性,例如,在其中使用
\uu getattr\uuu
来实现
git(C=path).commit(m=message)
ls()
场景?或者根据是否正在访问
\uuuu call\uuuu
的属性,有条件地返回部分或输出列表


编辑: 我想知道类似的方法是否可行

def\uuu调用(self,*args,**kwargs):
类内部\u类:
定义初始化(self,*args,**kwargs):
self.args=args
self.kwargs=kwargs
def uu getattr u(self,子命令):
返回部分(面包店、自助程序)
定义调用(self,*args,**kwargs):
返回面包店(*self.args,**self.kwargs)。\u获取输出作为列表(*args,**kwargs)
返回内部类(self.program,*args,**kwargs)

编辑2:
我想我可以将单个的
\uuuuu调用
函数转换成子类,然后从需要的子类导入。

你能给出一个实际代码的小例子吗?我不清楚你的问题是什么。我的代码到处都是;你能给我一个具体的例子来说明该提供什么吗?@ShadowRylander我不确定你会发现有多少候选人愿意阅读你的整个回购协议,只是为了理解你的问题。请用适当的标题编辑您的问题。
\uuuuu call\uuuuu
与它返回的内容的使用无关。问题是,您希望
ls()
实际运行命令,但
git()
应该返回一个在返回时运行命令的对象
\uuuu call\uuuu
无法看到未来,无法看到哪个是哪个,因为类似于
x=git(…)。。。;x、 提交(…)
是完全合法的。
git
ls
本质上是不同的东西;你必须以不同的方式对它们进行建模。从某种意义上说,
ls
更接近于类似于
RunnableCommand
的子类,而
git
则是
RunnableCommandBuilder
的子类:它将具有创建实际映射到shell命令的
RunnableCommand
实例的方法。