Python:什么是成员变量?

文章探讨了在Python的numpy库中,即使更改了ndarray数组内部的数据类型,输出的数组类型仍然显示为numpy.ndarray的原因。作者指出,dtype实际上是数组的成员变量,而非函数参数,它可以被用来查询或设定数组中数据的类型。当创建数组时,可以使用dtype参数指定数据类型,但数组的类型(type)始终反映的是数组所属的类。
摘要由CSDN通过智能技术生成

问题产生:

当我创建一个ndarray数组,并且更改了其中数据的类型,结果在输出type的时候仍然是ndarray。

这一点已经在

Python:Numpy学习(一)常用函数(小白)_Troysue的博客-CSDN博客

中有所体现,但当时并不清楚,为什么更改了数组内部数据的数字类型,输出的数组类型依然是numpy.ndarray,该问题会在文末指出。

(本文只记录探究成员变量的过程)

发现问题:

最近在学习numpy和pandas的时候遇到了一个dtype,身为小白的我认为dtype是函数中的默认参数,但不明白为什么dtype还可以是成员变量。不过不得不承认,我可以通过调用dtype,输出数组中数据的类型。


解决问题:

在搜索CSDN中,得知,成员变量相当于属性,比如dtype,其属性可以是int, str, float等等。

成员变量属于类中实例化的对象,也就是说,成员变量随对象生,随对象亡。

如何判定成员变量?

问题的争执点在于——如何区分成员变量和类中某一函数的参数。

其实很简单:

1. 成员变量本身就是存在的;参数需要我们传进去。

2. 成员变量可以调用,参数不可以调用。

import numpy as np

c = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [3, 5, 6, 0],
              [8, 9, 5, 6]])
print(c.dtype)
'''int32'''

print(type(c))
'''<class 'numpy.ndarray'>'''

以上我输入的内容均为整数型,所以数据中的数字为int。

fm = np.array([1, 2, 4, 5], dtype=float)
print(fm)
print(fm.dtype)

'''
[1. 2. 4. 5.]
float64
'''

我可以利用np.array中的参数dtype将数据类型由int转化为float,但是在我调用dtype的时候,并不是array函数中的参数dtype,而是成员变量dtype。两者重名了,所以不好区分。

如果仔细来看会发现是下列情况:

代码:            dtype = self.dtype

                  成员变量      参数

但python还是给出了很多提示的:

5aad5d4a54844cd6801acdd4772a3e44.png

 

618f0ab152534ea2bfba6a9b85069bba.png

 


另:为什么更改了数组内部数据的数字类型,输出的数组类型依然是numpy.ndarray

这是由于一个类中包含着很多数据类型,当我们单独拿出一个整数时,其类型为基础的int,但是我们创建一个类,类中囊括了很多数据类型,我们创造的对象,无论囊括了集中数据类型,均属于类,所以打印type的时候直接将类作为数据类型输出。

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值