首页 > 试题广场 >

Assuming the filename for the

[单选题]
Assuming the filename for the code below is /usr/lib/python/person.py
and the program is run as: python /usr/lib/python/person.py
What gets printed?()
 class Person:
    def __init__(self):
        pass
    def getAge(self):
        print __name__
p = Person()
p.getAge()


  • Person
  • getAge
  • usr.lib.python.person
  • __main__
1、__name__这个系统变量显示了当前模块执行过程中的名称,如果当前程序运行在这个模块中,__name__ 的名称就是__main__如果不是,则为这个模块的名称。 
2、__main__一般作为函数的入口,类似于C语言,尤其在大型工程中,常常有if __name__ == "__main__":来表明整个工程开始运行的入口。

发表于 2018-04-07 12:59:06 回复(6)

在 Python2 的解释环境下,正确的输出应该为:__main__

题目本身排版有误,最后两条语句不能放在同一行,直接运行报语法错误:

SyntaxError: invalid syntax

运行正确的排版应该为:

class Person:
    def __init__(self):
        pass
    def getAge(self):
        print __name__
p = Person()
p.getAge()

以上代码作为脚本文件运行时(而不是作为模块被引用),将输出
__main__,详情可参考官方文档:

__main__ — Top-level script environment

发表于 2018-01-11 21:49:01 回复(2)
将所学到的知识,重新组织语言转教他人,能大幅加深自己的理解:

__name__:name是一个变量,前后加了__ __标记为系统变量,__name__用于标识模块的名字的一个系统变量
当我单独执行一个模块,我的这个系统变量的值为__main__
当我在模块2导入“这个模块”后,”这个模块”的__name__值为这个模块的名称:“这个模块”。在不同的场所用更方便你理解的化名。
‘__main__’:是顶级代码执行的作用域的名称。

官方文档:

'__main__' is the name of the scope in which top-level code executes. A module’s __name__ is set equal to '__main__' when read from standard input, a script, or from an interactive prompt.

A module can discover whether or not it is running in the main scope by checking its own __name__, which allows a common idiom for conditionally executing code in a module when it is run as a script or with python -m but not when it is imported:

if __name__ == "__main__": # execute only if run as a script main() 

For a package, the same effect can be achieved by including a __main__.py module, the contents of which will be executed when the module is run with -m.



发表于 2018-09-01 21:02:09 回复(3)
1、先说这个题答案。
题目中语法就有问题,运行结果自然是报错
2、再说语法没问题的结果。
__name__定义在一个模块中,当解释器执行这个py文件时,__name__的值就为__main__;
当这个模块被引用即被其他模块import时,__name__的值就是模块名,也就是py文件名。
发表于 2018-08-07 15:12:48 回复(3)
平时这么用,用惯了,一到做题就懵圈。

例如:
if __name__ == '__main__':
    pass
else:
    print 'imported'

发表于 2018-03-20 00:25:12 回复(1)
c
发表于 2018-01-05 23:22:50 回复(1)
发表于 2018-02-14 17:08:00 回复(2)
正确的代码格式如下:
class Person:  def __init__(self):  pass  def getAge(self):  print(__name__)
p = Person()
p.getAge()
考查内置变量__name__:
每个模块都有一个内置变量__name__。
1. 如果模块是被导入,__name__的值为模块名字
2. 如果模块是被直接执行,__name__的值为’__main__’
train_FI.py:
class Person: def __init__(self):  pass  def getAge(self):  print(__name__) if __name__ == '__main__':
    p = Person()
    p.getAge()
train_Flickr_LDL.py:
import train_FI if __name__ == '__main__':
    p = train_FI.Person()
    p.getAge()
当运行train_FI.py时,输出结果为__main__:train_FI.py模块被直接执行,所以它的内置变量__name__的值就是__main__
当运行train_Flickr_LDL.py时,输出结果为train_FI:train_FI.py模块没有被直接运行,所以它的内置变量__name__的值就是train_FI

发表于 2019-07-27 10:42:07 回复(0)
求解
1、print __name__ 打印的应该是__main__ 而非main
2、为什么最后会冒出一个
E.An exception is thrown
编辑于 2019-03-16 11:07:54 回复(0)
这道题的答案排版有误吧,他应该是给了ABCDE5个答案,选择D,但是E被挤到D后面了
发表于 2019-07-17 08:31:12 回复(1)
__name__参数代表的当前模块的名字,若在该模块本身下运行则输出__main__;若在其他模块下引用,输出__name__该模块自己的名字。
举例:
class Person:
    def __init__(self):
        pass
    def getAge(self):
        print(__name__)
p = Person()
p.getAge()

import math
print(math.__name__)
__main__
math


发表于 2022-03-10 21:22:44 回复(0)

正确的题目代码如下:

class Person:
    def __init__(self):
        pass
    def getAge(self):
        print(__name__)
p = Person()

图片说明
经我测试,无论python2,还是python3,程序结果都是__main__,即当前模块的名称。

发表于 2019-03-19 10:26:39 回复(0)
为毛我的输出是:__main__

编辑于 2018-01-10 21:39:08 回复(2)
--name--为系统变量,当运行在当前模块下时,--name--输出--main--,如果该模块是被引用导入的,则输出该模块的名称。
发表于 2019-02-21 11:08:47 回复(0)
1、__name__这个系统变量显示了当前模块执行的过程中的名称,如果按当前程序运行这个模块。__name__的名称就是__main__。如果不是,则是这个模块的名称
发表于 2018-09-10 18:41:41 回复(0)
__name__:name是一个变量,前后加了__ __标记为系统变量,__name__用于标识模块的名字的一个系统变量。
当我单独执行一个模块,我的这个系统变量的值为__main__
当我在模块2导入“这个模块”后,”这个模块”的__name__值为这个模块的名称:“这个模块”。在不同的场所用更方便你理解的化名。
‘__main__’:是顶级代码执行的作用域的名称。
发表于 2023-10-30 20:59:29 回复(0)
执行的是自己模块的时候,__name__= __main__。别人调用我执行的时候是我的模块名字。
发表于 2023-09-03 21:34:24 回复(0)
Assuming the filename for the code below is /usr/lib/python/person.py
and the program is run as: python /usr/lib/python/person.py
题干当中,这句话的意思是,当前运行的这个程序就是在这个模块中运行的,所以__name__的结果为__main__
发表于 2022-05-19 10:32:31 回复(0)
链接:https://www.nowcoder.com/questionTerminal/1939fe80a9394041992f16621cd6d67c
来源:牛客网
__name__:name是一个变量,前后加了__ __标记为系统变量,__name__用于标识模块的名字的一个系统变量。
当我单独执行一个模块,我的这个系统变量的值为__main__
当我在模块2导入“这个模块”后,”这个模块”的__name__值为这个模块的名称:“这个模块”。在不同的场所用更方便你理解的化名。
‘__main__’:是顶级代码执行的作用域的名称。
发表于 2022-05-16 20:39:56 回复(0)
直接执行为——main 被import为 模块取名
发表于 2022-04-17 21:59:32 回复(0)