什么是部分课程?

Mar*_*sCC 8 c# python oop programming-languages

它是什么以及如何在C#中使用.
你能在Python/Perl中使用相同的概念吗?

Jon*_*eet 19

部分类型(它不必是类;结构和接口可以是部分的太)基本上是具有在多个文件的码扩展的单一类型.

这样做的主要用途是允许代码生成器(例如Visual Studio设计器)"拥有"一个文件,而手写代码则放在另一个文件中.

我不知道Python/Perl是否具有相同的功能.


Ton*_*uža 9

这里已经解释了c#partial类,所以我将只介绍python部分.您可以使用多重继承来优雅地分发类的定义.

class A_part1:
    def m1(self):
        print "m1"

class A_part2:
    def m2(self):
        print "m2"

class A(A_part1, A_part2):
    pass

a = A()
a.m1()
a.m2()
Run Code Online (Sandbox Code Playgroud)


Cli*_*rce 6

部分类只是包含在多个文件中的类.有时,一部分可以是机器生成的,另一部分是用户编辑的.

我在C#中使用它们时,我正在制作一个有点太大的课程.我将把访问器和构造函数放在一个文件中,将所有有趣的方法放在不同的文件中.

在Perl中,您只需要两个(或更多)文件,每个文件都声明自己在一个包中:

(主程序)

    use MyClass;
Run Code Online (Sandbox Code Playgroud)

(在MyClass.pm中)

    use MyClassOtherStuff;
    package MyClass;
    # [..class code here...]
Run Code Online (Sandbox Code Playgroud)

(在MyClassOtherStuff.pm中)

    package MyClass;
    # [...rest of code here...]
Run Code Online (Sandbox Code Playgroud)