Python3面向对象--1.对象(3)组织模块的内容name

    技术2025-05-24  50

    在C,C#等语言中,有程序入口。例如C语言的主程序main()

    #include<stdio.h> #include<stdlib.h> int jiecheng() { printf("输入要实现的大于0的阶乘的数"); int x=0; scanf("$d",&x); int y=1; int i=1; for(i;i<=x;i++) {y=i*y;} return y; } int a() { printf("zhou") } int main() { int a=jiecheng(); printf("%d",a); return 0 ; }

    在C代码中,程序只通过main()窗口执行程序,a函数不会被执行。因为python是动态语言,执行的时候是从上往下执行,那么如何像C这种语言一样一个模块有一个程序入口呢? if ____name ____=="__main __": … 特殊变量name的这种运用方式解决了这个问题,在下面添加可执行的代码块就好了

    def jiecheng(): x=input("输入要阶乘大于0的整数") y=1 i=1 while int(x)>=i: y=y*i i=i+1 return y print("今天天气真好") if __name__=="__main__": print( jiecheng()) 今天天气真好 输入要阶乘大于0的整数5 120

    于是改变了自上而下的调用顺序,但是不像C一样,没有在主函数调用的就不会执行。在Python中,没有被name调用的依然执行,name只是改变了执行顺序。 jiecheng()只有在被name中调用时候才执行,同时name也是这个模块的唯一入口,也就是说,其他模块调用这个模块时候,name中的命令不会执行,因为name是当前模块的接口

    "jiecheng方法没有被调用" import m print("zhou") 今天天气真好 zhou
    Processed: 0.011, SQL: 9