首页 > 解决方案 > 这个大小运算符在函数调用中做了什么?

问题描述

如果 Enquiry(lis1).size: 的工作是什么,我们可以在调用函数时使用 .size 如果是这样的话,那么参数 lis1 将在函数定义中接收什么 def Enquiry(lis1): 和请详细说明,因为我是 python 的初学者

import numpy 
def Enquiry(lis1): 
    return(numpy.array(lis1))  
lis1 = [] 
if Enquiry(lis1).size: 
    print("Not Empty") 
else: 
    print("Empty

标签: python-3.x

解决方案


对于 numpy 数组,size是一个包含对象大小的numpy.array属性。参数lis1是一个暴露array接口的python对象。是的,您可以.size在调用时使用,Enquiry(lis1)因为当它被评估时,它会返回一个numpy.array对象然后调用.size它。示例用法:

>>> import numpy
>>> v = numpy.array([1, 2, 3])
>>> v.size
3
>>> dir(v)
[..., 'shape', 'size', 'sort', ...]
>>>
>>> getattr(v, 'size')
3

函数签名 (use, help(numpy.array)) 可以看到:

Help on built-in function array in module numpy.core.multiarray:

array(...)
    array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

    Create an array.

    Parameters
    ----------
    object : array_like
        An array, any object exposing the array interface, an object whose
        __array__ method returns an array, or any (nested) sequence.

推荐阅读