![]() |
1
2
你可以,但一般来说不可以。 我会说 be careful with exec .但除此之外,没有什么能真正阻止你这么做
不过,我的建议是你不要这样做,因为这是非常不切实际的,而且没有惯例。 |
![]() |
2
0
取决于你所说的“存储”是什么意思?但是如果您的意思是“定义”,是的,您可以定义函数(注意:
如果要使其成为方法,可以将其添加到实例中:
或者到类(这意味着每次您声明类时它都将被覆盖):
好吧,如上所述,这是荒谬的、混乱的和低效的,所以我看不出这是如何成为良好实践的。和一起做
如果目标是以某种方式为每个实例参数化给定的方法(基于条件或其他条件),您可以将函数或任何可调用的fwiw作为参数传递(python函数与其他任何函数一样是对象):
这就是所谓的“战略”设计模式。 |
![]() |
3
0
你可以做你想做的,但是你必须使用的全局参数和局部参数
此代码在创建第一个对象时明确地将已编译的函数添加到类中。 演示:
这清楚地表明
但是…
请不要!!!
.这段代码只显示了python非常友好,可以允许对类进行运行时修改,如果类属性恰好是一个函数,那么这个方法就是一个方法。好的,传递给exec的字符串是受控制的,所以这里没有安全问题,但是
除非你真的需要这样的代码,否则它会导致一个难以理解的类,而可读性应该是Python程序员的首要考虑。 所以回答你的第二个问题,这真是一个可怕的练习。千万不要说我建议用它。 |
![]() |
iasonas · 如何检查自定义注释? 4 月前 |
![]() |
Svyat · 如何创建一个类设置,其中两个类各包含另一个类的实例? 5 月前 |
![]() |
F-22 Destroyer · 遇到super()问题 9 月前 |
|
simply lemon · python上链表的添加方法 10 月前 |
![]() |
Minty · 自定义类中使用numpy数组进行左加法/右加法的不同行为 10 月前 |