在Python中使用plt.cm.Spectral时,我有些困惑。 经过检查plt.cm.Spectral的类型后,我将模块plt.cm中的var Spectral视为类LinearSegmentedColormap的一个实例。 但是,我也看到代码colors = plt.cm.Spectral(np.linspace(0,1,10))可以执行没有错误。这里有一点让我困惑,为什么可以调用一个类的实例,即在其后面加上带有参数的括号? 谢谢!如果他们实施__call__
为什么可以调用一个类的实例?
2
A
回答
3
Python对象调用的:
object.__call__(self[, args...])
当实例“称”作为一个函数调用;如果定义了此方法,则
x(arg1, arg2, ...)
是x.__call__(arg1, arg2, ...)
的简写。从Colormap
LinearSegmentedColormap
继承实现__call__
:
https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/colors.py#L433
这使得LinearSegmentedColormap
调用一个实例。
相关问题
- 1. 为什么您可以在同一个委托实例上多次调用BeginInvoke?
- 2. 为什么我可以实例化这个抽象类?
- 3. 为什么可以创建一个COM接口的新实例?
- 4. 什么可以从元类实例化
- 5. 为什么LocalDateTime可以返回实例?
- 6. 为什么你可以在其定义中实例化一个类?
- 7. 为什么在Java中的类实例中返回一个类实例?
- 8. 为什么期望的实例“用户”是一个类?
- 9. 为什么实例化一个类输出类的内容?
- 10. 一个类的伊娃可以作为它的超类的一个实例吗?
- 11. 为什么调用实例化的PHP类方法?
- 12. 我可以指定一个类实例可以转换为某种类型吗?
- 13. 为什么这个python类实例可散列?
- 14. 我可以在JavaScript中动态地将一个类的实例转换为另一个类的实例吗?
- 15. 静态类不会先被调用,而会被实例类调用。为什么?
- 16. 为什么我们可以在一个静态方法内创建一个类的实例?
- 17. 在PHP 5.2为什么实例化一个类并在同一行上调用一个方法是无效的?
- 18. 为什么我不能让String成为一个类型类的实例?
- 19. 为什么同一个类的两个实例的行为不同?
- 20. 一个类的实例可以用JavaScript代替它自己吗?
- 21. 可以用java相同的方式实例化一个scala类
- 22. 为什么在Python中`object`类的实例是不可变的?
- 23. Java的超类实例调用子类的方法,不知道为什么
- 24. 调用实例方法从另一个类访问IBOutlet实例
- 25. 为什么Python不调用实例方法__init __()创建实例,而是调用类提供的__init __()来代替?
- 26. 为什么Unity启动这个实例不是一个单例?
- 27. 是否可以从内部类实例访问一个外部类实例?
- 28. 一个类可以是一个实例是否正确?
- 29. 为什么NHibernate删除不可变的类实例?
- 30. 如何调用一个类的实例,实例方法从不同的类
谢谢!非常明确的解释。 – Leo