i*****e 发帖数: 218 | 1 向大家请教一个python OOP 实现的问题。
我是从C++背景转用python 的。 关于python, 有一点我一直没搞明白。
In C++, object oriented的核心是, 可以用base class的 pointer 调用 derived
class 的methods。 这样 基本的框架可以用base class实现, 通过derived class
method实现”polymorphism“。
这个的设计在python里, 是如何实现的 ?
python 里怎么用 base class object call derived class method ?
多谢大家。 |
h**********c 发帖数: 4120 | 2 weak type的脚本语言实践oop经常出现很荒唐的结果比如
比较两个string objects的references,大量的运算符号要重写,比如加号返回两个
references的加和。
所以你要是脚本语言就老老实实写function得了,现代ide和解释器层面的优化可以。
OPINION TBD。
【在 i*****e 的大作中提到】 : 向大家请教一个python OOP 实现的问题。 : 我是从C++背景转用python 的。 关于python, 有一点我一直没搞明白。 : In C++, object oriented的核心是, 可以用base class的 pointer 调用 derived : class 的methods。 这样 基本的框架可以用base class实现, 通过derived class : method实现”polymorphism“。 : 这个的设计在python里, 是如何实现的 ? : python 里怎么用 base class object call derived class method ? : 多谢大家。
|
T*******x 发帖数: 8565 | 3 可能不行。python没有polymorphism吧。base class里面的method如果sub class不定
义,那就相当于copy一套,如果sub class再定义了,那就把base class的冲掉了。
这个设计的原因我想是因为脚本语言。它任何一个东西都是一个object,占一块内存。
Python里class也是一个object,占一块内存。它都是runtime的object,没有code空间。
【在 i*****e 的大作中提到】 : 向大家请教一个python OOP 实现的问题。 : 我是从C++背景转用python 的。 关于python, 有一点我一直没搞明白。 : In C++, object oriented的核心是, 可以用base class的 pointer 调用 derived : class 的methods。 这样 基本的框架可以用base class实现, 通过derived class : method实现”polymorphism“。 : 这个的设计在python里, 是如何实现的 ? : python 里怎么用 base class object call derived class method ? : 多谢大家。
|
p***o 发帖数: 1252 | 4 python是动态鸭子类型,所以不需要像C++/Java一样定义基类,和C++里模板有点类似。
【在 i*****e 的大作中提到】 : 向大家请教一个python OOP 实现的问题。 : 我是从C++背景转用python 的。 关于python, 有一点我一直没搞明白。 : In C++, object oriented的核心是, 可以用base class的 pointer 调用 derived : class 的methods。 这样 基本的框架可以用base class实现, 通过derived class : method实现”polymorphism“。 : 这个的设计在python里, 是如何实现的 ? : python 里怎么用 base class object call derived class method ? : 多谢大家。
|
w********m 发帖数: 1137 | 5 C++是top down。
Python是bottom up。先写function, 再写class。写法不一样。 |
h**********c 发帖数: 4120 | 6 what are you talking about, rocket science?
【在 w********m 的大作中提到】 : C++是top down。 : Python是bottom up。先写function, 再写class。写法不一样。
|
h**********c 发帖数: 4120 | 7 what are you talking about, rocket science?
when you want people learn your shit, everything is simple and fast.
Then satanly this rocket science shit came out, excuese my language.
It is not stated in your web site.
This is fraudulence, probably racketeering.
【在 w********m 的大作中提到】 : C++是top down。 : Python是bottom up。先写function, 再写class。写法不一样。
|
h**********c 发帖数: 4120 | 8 去fbi告,能受理吗?
刚wiki了一下racketeering,有个专门RICO法案。
涉案金额千分之一,哥就可以退休了。
【在 h**********c 的大作中提到】 : what are you talking about, rocket science? : when you want people learn your shit, everything is simple and fast. : Then satanly this rocket science shit came out, excuese my language. : It is not stated in your web site. : This is fraudulence, probably racketeering.
|
d******e 发帖数: 2265 | 9 当然有。
间。
【在 T*******x 的大作中提到】 : 可能不行。python没有polymorphism吧。base class里面的method如果sub class不定 : 义,那就相当于copy一套,如果sub class再定义了,那就把base class的冲掉了。 : 这个设计的原因我想是因为脚本语言。它任何一个东西都是一个object,占一块内存。 : Python里class也是一个object,占一块内存。它都是runtime的object,没有code空间。
|
d******e 发帖数: 2265 | 10 忘掉oop吧。这东西严重落伍了。
【在 i*****e 的大作中提到】 : 向大家请教一个python OOP 实现的问题。 : 我是从C++背景转用python 的。 关于python, 有一点我一直没搞明白。 : In C++, object oriented的核心是, 可以用base class的 pointer 调用 derived : class 的methods。 这样 基本的框架可以用base class实现, 通过derived class : method实现”polymorphism“。 : 这个的设计在python里, 是如何实现的 ? : python 里怎么用 base class object call derived class method ? : 多谢大家。
|
i*****e 发帖数: 218 | 11 > 忘掉oop吧。这东西严重落伍了。
现在新的是什么 ?
【在 d******e 的大作中提到】 : 忘掉oop吧。这东西严重落伍了。
|
s******e 发帖数: 431 | 12 Everything in Python is an object. Polymorphism is the nature of python. C++
virtual function behavior is the default behavior of python. Actually, c++
non-virtual function override is not supported by Python.
【在 i*****e 的大作中提到】 : 向大家请教一个python OOP 实现的问题。 : 我是从C++背景转用python 的。 关于python, 有一点我一直没搞明白。 : In C++, object oriented的核心是, 可以用base class的 pointer 调用 derived : class 的methods。 这样 基本的框架可以用base class实现, 通过derived class : method实现”polymorphism“。 : 这个的设计在python里, 是如何实现的 ? : python 里怎么用 base class object call derived class method ? : 多谢大家。
|