python实例化时带括号与不带

1.首先这个标题题目不是很准确,但一时又想不到更好的标题所以只好用这个标题,下面我们来看看为什么。

  首先我们要明白python中类的实例化是要加上括号的,那么不加括号是什么意思你,看代码

class Test:
    def __init__(self,x):
        self.value=x
    def Print(self):
        print(self.value)
a=Test
b=Test(1)
print(a)
print(b)

 输出结果如下,由此可见a还是一个Test类并不是一个Test实例,而b是一个Test实例

<class '__main__.Test'>
<__main__.Test object at 0x029A52D0>

再看下面的代码

class Test:
    def __init__(self,x):
        self.value=x
    def Print(self):
        print(self.value)
a=Test
b=Test(1)
c=a(2)
print(a)
print(b)
print(c)

 结果如下,由此可知,c也是一个Test实例,那么一切都清楚了a=Test实际上相当于C语言中的typedef的作用,相当于给Test类起了一个别名

<class '__main__.Test'>
<__main__.Test object at 0x035A52D0>
<__main__.Test object at 0x035A5350>

posted on 2019-08-02 10:43  之懿  阅读(1810)  评论(0编辑  收藏  举报

导航