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>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM