【发布时间】:2018-06-04 09:56:10
【问题描述】:
假设我有一个列表
x = [1,2,3,4,5,6,7,8,9,10]
我想通过调用一个函数来打印这个列表。这是我打印列表的功能
def print_list(list_received):
for var in list_received:
print var
我打电话给print_list(),如下所示
print_list(x)
| |
method argument
name
所以上面的函数调用看起来与我们以前在 C/C++ 中所做的类似。
现在假设我有一个名为my_list的列表
my_list = [1,2,3,4,5,6,7,8,9,10]
我想将my_list 转换为元组,我会像下面那样做
my_tuple = tuple(my_list)
现在这里 tuple(my_list) 被称为 typecasting,正如我从这里看到的 http://www.pitt.edu/~naraehan/python2/data_types_conversion.html
现在上面的 typecasting 看起来与 C 或 C++ 完全不同,就像我们以前在 C 中所做的那样
int x = 10;
char ch = (char)x
我的第一个疑问是关于将 C 看起来像 (tuple)my_list 更改为 tuple(my_list) 的合理理论或考虑是什么?答案可能是Python 不是C,但我想知道更多。
我的第二个问题是python解释器将如何决定它是函数调用还是类型转换函数,即my_print(x)和tuple(my_list)的调用约定看起来相似但实际上两者都在做不同的工作。
【问题讨论】:
-
但是类型转换函数也是函数
-
谢谢@Ev.Kounis 是的
tuple()也是内置的。但是我可以在这里说我在声明tuple(my_list)中调用tuple()方法吗? -
函数调用和类型转换函数没有区别。您调用
tuple函数。它返回一个元组。故事结束。 -
但通常在
C中显式类型转换不被视为函数调用,不是吗?在 pythonint(x)和 C(int)x中,两者的工作方式相同,但约定不同,其中x是浮点变量。 -
在python中,
int(x)调用x.__int__(),可以是int.__int__、float.__int__、numpy.int64.__int_等,具体取决于x的类型
标签: python python-2.7 type-conversion