Python 一个类中的一个类,这应该是固定的还是有意的?

Python 一个类中的一个类,这应该是固定的还是有意的?,python,class,python-3.x,inner-classes,python-3.5,Python,Class,Python 3.x,Inner Classes,Python 3.5,今天我在试验和/或摆弄Python 3.5 我碰巧“无意”写下了这样一句话: class Apple(object): class green(object): def eat(): print("You just ate a green apple...") class red(object): def eat(): print("You just ate a red apple...") 意思

今天我在试验和/或摆弄Python 3.5

我碰巧“无意”写下了这样一句话:

class Apple(object):
    class green(object):
        def eat():
            print("You just ate a green apple...")

    class red(object):
        def eat():
            print("You just ate a red apple...")
意思是我现在可以做:

Apple.red.eat() # would print: "You just are a red apple..."
Apple.green.eat() # would print: "You just are a green apple..."
这让我不禁要问,诸如
os.path.exists()
之类的函数是如何创建的,还是使用另一种“方法”创建的?
这是应该纠正的,还是故意的


提前感谢。

类中的类在python中工作得很好——但是,python处理名称空间的主要机制是模块和包,而不是类。我还没有发现类在类中有很多用途(尽管可能有一些有效的用例)

要设置类似于
os.path.exists
的内容,我会将您引导到,除了
os.path
做了一些非常粗略的事情来设置其名称空间(修改
sys.modules
)并避免使用包之外。您最好创建一个包,除非您需要有条件地以相同的名称导入不同的内容

在这种情况下,要设置包,可以使用类似于1的目录结构:

然后,假设你的蟒蛇能正确地找到所有东西,你会:

from apples.green import GreenApple
from apples.red import RedApple

1显然,这只是您可以设置它的多种方法之一。如果没有一个实际的示例来说明您正在做什么,就很难给出任何具体的建议

类中的类在python中工作得很好——然而,python处理名称空间的主要机制是模块和包,而不是类。我还没有发现类在类中有很多用途(尽管可能有一些有效的用例)

要设置类似于
os.path.exists
的内容,我会将您引导到,除了
os.path
做了一些非常粗略的事情来设置其名称空间(修改
sys.modules
)并避免使用包之外。您最好创建一个包,除非您需要有条件地以相同的名称导入不同的内容

在这种情况下,要设置包,可以使用类似于1的目录结构:

然后,假设你的蟒蛇能正确地找到所有东西,你会:

from apples.green import GreenApple
from apples.red import RedApple

1显然,这只是您可以设置它的多种方法之一。如果没有你正在做的事情的真实例子,很难给出任何具体的建议

我不确定,但我认为
import os
os.py
获取所有内容。。。因此
path
必须是
os.py
文件中的
class
,并且
exists()
必须是
path
类中的
函数。
os.path
是子模块,
os
是一个包。如果
os.path
是一个类,那么您可以创建没有任何意义的
os.path
的实例,代码也存在同样的问题。执行
x=Apple.red();x、 eat()
引发错误,因为
eat
不是有效的方法(缺少
self
参数),我不确定,但我认为
import os
os.py
获取所有内容。。。因此
path
必须是
os.py
文件中的
class
,并且
exists()
必须是
path
类中的
函数。
os.path
是子模块,
os
是一个包。如果
os.path
是一个类,那么您可以创建没有任何意义的
os.path
的实例,代码也存在同样的问题。执行
x=Apple.red();x、 eat()
引发错误,因为
eat
不是有效的方法(缺少
self
参数)。感谢您的时间和帮助,我非常感谢,+1。感谢您的时间和帮助,我非常感谢,+1。