标签: oop

Python中的旧样式和新样式类有什么区别?

Python中的旧样式和新样式类有什么区别?我什么时候应该使用其中一种?

python oop types class new-style-class

953
推荐指数
8
解决办法
22万
查看次数

public,private和protected之间有什么区别?

何时以及为什么我应该在类中使用public,privateprotected函数和变量?他们之间有什么区别?

例子:

// Public
public $variable;
public function doSomething() {
  // ...
}

// Private
private $variable;
private function doSomething() {
  // ...
}

// Protected
protected $variable;
protected function doSomething() {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

php oop private protected public

951
推荐指数
13
解决办法
47万
查看次数

什么时候应该在C++中使用类vs结构?

在什么情况下在C++中使用structvs a 更好class

c++ oop struct ooad class

895
推荐指数
15
解决办法
38万
查看次数

什么是mixin,为什么它们有用?

在" 编程Python "中,Mark Lutz提到了"mixins".我来自C/C++/C#背景,我之前没有听过这个词.什么是mixin?

这个例子的行之间进行读取(我已经链接到了因为它很长),我假设这是一个使用多重继承来扩展类而不是"正确"子类的情况.这是正确的吗?

为什么我要这样做而不是将新功能放入子类?就此而言,为什么mixin/multiple继承方法比使用组合更好?

mixin与多重继承的区别是什么?这仅仅是语义问题吗?

python oop multiple-inheritance mixins

875
推荐指数
16
解决办法
27万
查看次数

Liskov替代原则的例子是什么?

我听说Liskov替换原则(LSP)是面向对象设计的基本原则.它是什么以及它的使用例子是什么?

oop liskov-substitution-principle definition design-principles solid-principles

845
推荐指数
24
解决办法
29万
查看次数

"编程到界面"是什么意思?

我已经看过几次提到这个,我不清楚这是什么意思.你何时以及为何会这样做?

我知道接口有什么作用,但事实上我不清楚这一点让我觉得我错过了正确使用它们.

如果你这样做是这样的:

IInterface classRef = new ObjectWhatever()
Run Code Online (Sandbox Code Playgroud)

你可以使用任何实现的类IInterface吗?你什么时候需要这样做?我唯一能想到的是,如果你有一个方法,你不确定除了实现之外将传递什么对象IInterface.我想不出你需要多久做一次.

另外,你怎么能写一个接受实现接口的对象的方法?那可能吗?

language-agnostic oop interface

791
推荐指数
17
解决办法
16万
查看次数

功能编程与面向对象编程

到目前为止,我已经主要接触过OO编程,并期待学习一门函数式语言.我的问题是:

  • 什么时候选择面向对象的函数式编程?
  • 什么是典型的问题定义,函数式编程是更好的选择?

oop paradigms functional-programming

763
推荐指数
4
解决办法
25万
查看次数

接口与基类

我何时应该使用接口,何时应该使用基类?

如果我不想实际定义方法的基本实现,它应该始终是一个接口吗?

如果我有狗和猫类.为什么我要实现IPet而不是PetBase?我可以理解有ISheds或IBarks(IMakesNoise?)的接口,因为那些可以基于宠物放在宠物上,但我不明白哪个用于通用Pet.

language-agnostic oop static-typing interface base-class

754
推荐指数
17
解决办法
15万
查看次数

Python __init__和self他们做了什么?

我正在学习Python编程语言,而且我遇到了一些我不太了解的东西.

在如下方法中:

def method(self, blah):
    def __init__(?):
        ....
    ....
Run Code Online (Sandbox Code Playgroud)

怎么self办?这是什么意思?这是强制性的吗?

__init__方法有什么作用?为什么有必要?(等等.)

我认为它们可能是OOP结构,但我不太了解.

python oop self

737
推荐指数
18
解决办法
102万
查看次数

如何根据对象的属性对对象列表进行排序?

我有一个Python对象列表,我想根据对象本身的属性进行排序.该列表如下:

>>> ut
[<Tag: 128>, <Tag: 2008>, <Tag: <>, <Tag: actionscript>, <Tag: addresses>,
 <Tag: aes>, <Tag: ajax> ...]
Run Code Online (Sandbox Code Playgroud)

每个对象都有一个计数:

>>> ut[1].count
1L
Run Code Online (Sandbox Code Playgroud)

我需要按递减计数的数量对列表进行排序.

我已经看过几种方法,但我正在寻找Python的最佳实践.

python sorting oop list count

724
推荐指数
8
解决办法
48万
查看次数