• Python中类-带括号与不带括号的区别


    类不带括号我们叫赋值,带括号我们叫实例化。

    什么是赋值?

    a=7
    b=a
    id(7)
    140726814208448
    id(a)
    140726814208448
    id(b)
    140726814208448
    
    

    从上面例子中我们可以看出变量a赋值7、b赋值a,它们的内存地址都是相同的。
    它们是指向了同一个内存地址,而不是 b 指向 a 然后a在指向内存地址。


    不是:

    注:id() 函数用于获取对象的内存地址。

    什么是实例化?

    “类提供默认行为,是实例的工厂”
    怎么理解这句话呢?所谓工厂,就是可以用同一个模子做出很多具体的产品。类就是那个模子,实例就是具体的产品。所以,实例是程序处理的实际对象。
    类是由一些语句组成,但是实例,是通过调用类生成,每次调用一个类,就得到这个类的新的实例。

    不带括号-赋值

    class Tea:
        def __init__(self):
            print('Dahongpao Tea')
    
    
    a = Tea
    print(id(Tea))			# 2186368764424
    print(id(a))			# 2186368764424
    print(a)				# <class '__main__.Tea'>
    print(Tea)				# <class '__main__.Tea'>
    

    从上面例子中输出的内容我们可以看出:
    a = Tea类 所指向的是同一内存地址,而在第一点我们已经知道,赋值就是指向同一内存地址,所以得出不带括号的是赋值。

    带括号-实例化

    class Tea:
        def __init__(self):
            print('Dahongpao Tea')
    
    b = Tea()
    print(id(Tea))
    print(id(b))
    print(Tea)
    print(b)
    

    输出结果为:

    Dahongpao Tea			# 这是__init__输出的
    1386207499400			# print(id(Tea))
    1386196961736			# print(id(b))
    <class '__main__.Tea'>		# print(Tea)
    <__main__.Tea object at 0x00000142BFC709C8>  # print(b)
    
    

    从上面例子中输出结果最后我们可以知道
    b为Tea类实例化一个对象而且他们的内存地址也一样了

    python 类 - 带括号是实例化,不带括号是赋值。
    ————————————————
    版权声明:本文为CSDN博主「无梦生7」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/s1156605343/article/details/104275730

  • 相关阅读:
    表单实现仿淘宝搜索应用
    ASCII字符集
    HTTP状态码
    总结get和post区别
    总结Canvas和SVG的区别
    展示github中的页面(Github Pages)
    canvas的beginPath和closePath分析总结,包括多段弧的情况
    12. Integer to Roman
    13. Roman to Integer
    463. Island Perimeter
  • 原文地址:https://www.cnblogs.com/Uni-Hoang/p/13169285.html
Copyright © 2020-2023  润新知