【转载】python 类名和调用函数时 加括号和不加括号的区别

由于本文参考的文章较多,csdn没法在原文连接处填写多个连接,故此处仅填写一个连接,将全部参考文章的连接所有放在了文章最后。web

1. 类名加括号和不加括号

class clsTest():
    y = 'you'

    def __init__(self):
        self.y = 'me'


print clsTest
x = clsTest
print x
print(x.y)

x = clsTest()
print(x.y)

结果:svg

main.clsTest
main.clsTest
you
me函数

分析:加括号的是类的实例化;不加括号就不是启动实例,这个应该和设置一个别名是同样的。.net

2. 函数名加括号和不加括号

def bracket(data):
    return data


if __name__ == '__main__':
    print bracket
    # 不带括号调用的结果:<function bracket at 0x0000000004DD0B38>,a是整个函数体,是一个函数对象,不须等该函数执行完成
    a = bracket
    print a
    # 带括号调用的结果:6 ,b是函数执行后返回的值6,须等该函数执行完成的结果
    b = bracket(6)
    print b

结果:code

<function bracket at 0x7ff43a5b95f0>
<function bracket at 0x7ff43a5b95f0>
6xml

参考:

  1. https://bbs.csdn.net/topics/392156189
  2. https://blog.csdn.net/ITLearnHall/article/details/80894365