Questions tagged «oop»

面向对象的编程是一种使用“对象”的编程范式:由数据字段和方法及其相互作用组成的数据结构。


6
在Python的另一个类中定义一个类是否有好处?
我在这里谈论的是嵌套类。本质上,我有两个正在建模的类。一个DownloadManager类和一个DownloadThread类。显而易见的OOP概念是组合。但是,组合不一定意味着嵌套,对吗? 我有看起来像这样的代码: class DownloadThread: def foo(self): pass class DownloadManager(): def __init__(self): dwld_threads = [] def create_new_thread(): dwld_threads.append(DownloadThread()) 但是现在我想知道是否存在嵌套更好的情况。就像是: class DownloadManager(): class DownloadThread: def foo(self): pass def __init__(self): dwld_threads = [] def create_new_thread(): dwld_threads.append(DownloadManager.DownloadThread())
106 python  oop 

5
简单的解释PHP OOP与过程?
我想学习PHP,并想了解有关OOP和过程的知识。我还阅读了其他有关OOP与程序的博客和教程,但我仍然不了解这种方法。 OOP与程序 我应该学习哪个? 代码有什么区别?有什么影响? PHP框架如何帮助OOP?(我想学习CodeIgniter) 程序是否需要框架? 我真的很想知道两者的代码区别,我对OOP的理解是您创建了类似的类并且可以访问。(我不知道是否正确)。 谢谢!



7
为什么一个接口不能实现另一个接口?
我的意思是: interface B {...} interface A extends B {...} // allowed interface A implements B {...} // not allowed 我用谷歌搜索,发现了这个: implements表示定义接口方法的实现。但是接口没有实现,因此是不可能的。 但是,interface是100%抽象的类,抽象类可以实现接口(100%抽象的类)而无需实现其方法。将其定义为“接口”时会出现什么问题? 详细来说, interface A { void methodA(); } abstract class B implements A {} // we may not implement methodA() but allowed class C extends B { void methodA(){} …


14
为什么所有Active Record都讨厌?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 随着我越来越了解OOP,并开始实现各种设计模式,我不断回到人们讨厌Active Record的情况。 人们常常说它的伸缩性不好(以Twitter为例),但实际上没有人解释为什么伸缩性不好。和/或如何在没有缺点的情况下实现AR的优点(通过类似但不同的模式?) 希望这不会成为关于设计模式的一场圣战-我只想特别地了解一下Active Record的问题。 如果扩展性不好,为什么不呢? 还有什么其他问题?

1
使用matplotlib面向对象的界面进行seaborn绘图
我非常喜欢matplotlib以OOP风格使用: f, axarr = plt.subplots(2, sharex=True) axarr[0].plot(...) axarr[1].plot(...) 这样可以更轻松地跟踪多个图形和子图。 问题:如何以这种方式使用seaborn?或者,如何将此示例更改为OOP样式?如何分辨seaborn绘图功能(例如lmplot哪个Figure或哪个)Axes?


6
如何实现__getattribute__而没有无限递归错误?
我想覆盖对类中一个变量的访问,但通常返回所有其他变量。我该怎么做__getattribute__呢? 我尝试了以下操作(它也应说明我要执行的操作),但是出现了递归错误: class D(object): def __init__(self): self.test=20 self.test2=21 def __getattribute__(self,name): if name=='test': return 0. else: return self.__dict__[name] >>> print D().test 0.0 >>> print D().test2 ... RuntimeError: maximum recursion depth exceeded in cmp
100 python  class  oop  recursion  getattr 

15
如何从javascript中的类继承?
在PHP / Java中,可以做到: class Sub extends Base { } 并且,Super类的所有公共/受保护的方法,属性,字段等都会自动成为Sub类的一部分,如有必要,可以重写这些类。 Javascript中的等效功能是什么?
99 javascript  oop 

2
覆盖类常量与属性
我想更好地理解为什么在以下情况下,类常量与实例变量的继承方式有所不同。 <?php class ParentClass { const TEST = "ONE"; protected $test = "ONE"; public function showTest(){ echo self::TEST; echo $this->test; } } class ChildClass extends ParentClass { const TEST = "TWO"; protected $test = "TWO"; public function myTest(){ echo self::TEST; echo $this->test; } } $child = new ChildClass(); $child->myTest(); $child->showTest(); …

9
是否可以获得对象的不可枚举的继承属性名称?
在JavaScript中,根据要获取的内容,我们有几种获取对象属性的方法。 1)Object.keys(),它返回对象的所有自己的,可枚举的属性,即ECMA5方法。 2)for...in循环,返回对象的所有可枚举属性,无论它们是自己的属性还是从原型链继承。 3)Object.getOwnPropertyNames(obj)返回对象本身的所有属性,无论是否可枚举。 我们还拥有诸如hasOwnProperty(prop)让我们检查属性是否继承或实际上属于该对象之类的方法,以及propertyIsEnumerable(prop)顾名思义,可以让我们检查属性是否可枚举的方法。 使用所有这些选项,就无法获得对象的不可枚举,非自有属性,这就是我想要做的。有什么办法吗?换句话说,我能以某种方式获得继承的不可枚举属性的列表吗? 谢谢。

9
我应该使用课程还是字典?
我有一个只包含字段而没有方法的类,如下所示: class Request(object): def __init__(self, environ): self.environ = environ self.request_method = environ.get('REQUEST_METHOD', None) self.url_scheme = environ.get('wsgi.url_scheme', None) self.request_uri = wsgiref.util.request_uri(environ) self.path = environ.get('PATH_INFO', None) # ... 这可以很容易地翻译成字典。该类对于将来的添加更加灵活,使用可以更快__slots__。那么使用dict会有好处吗?字典会比全班更快吗?并且比具有插槽的课程快吗?
99 python  oop  class  dictionary 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.