python中的函数调用和类型转换?
假设我有一张清单python中的函数调用和类型转换?,python,python-2.7,type-conversion,Python,Python 2.7,Type Conversion,假设我有一张清单 x = [1,2,3,4,5,6,7,8,9,10] 我想通过调用一个函数来打印这个列表。这是我打印列表的功能 def print_list(list_received): for var in list_received: print var 我正在调用print\u list()如下 print_list(x) | | method argument name my_tuple
x = [1,2,3,4,5,6,7,8,9,10]
我想通过调用一个函数来打印这个列表。这是我打印列表的功能
def print_list(list_received):
for var in list_received:
print var
我正在调用print\u list()
如下
print_list(x)
| |
method argument
name
my_tuple = tuple(my_list)
因此,上面的函数调用看起来类似于我们在C/C++中使用的函数调用
现在让我们假设我有一个名为my_list
my_list = [1,2,3,4,5,6,7,8,9,10]
我想把我的列表
转换成tuple&我会像下面这样做
print_list(x)
| |
method argument
name
my_tuple = tuple(my_list)
现在这里这个元组(我的列表)
被称为typecasting,正如我从这里读到的
现在上面的typecasting看起来与我们以前做的C
或C++
完全不同
int x = 10;
char ch = (char)x
我的第一个疑问是关于将C
看起来像(tuple)My_list
更改为tuple(My_list)
的理性理论或考虑是什么?答案可能是Python
不是C
,但我想知道更多
我的第二个问题是python解释器将如何决定它是一个函数调用还是类型转换函数,即
My\u print(x)
和元组(My\u list)的调用约定
看起来很相似,但实际上两者所做的工作不同。为什么应该将其标识为普通函数或类型转换函数?这只是一个函数
或者,由于python中几乎所有的东西都是一个对象,实际上函数也是一种实现\uuuu调用的对象
此外,实际上没有类型转换函数<代码>元组
充当构造函数,它接受一个iterable对象并返回一个元组对象 为什么应该将其标识为普通函数或类型转换函数?这只是一个函数
或者,由于python中几乎所有的东西都是一个对象,实际上函数也是一种实现\uuuu调用的对象
此外,实际上没有类型转换函数<代码>元组
充当构造函数,它接受一个iterable对象并返回一个元组对象 my\u tuple=tuple(my\u list)
从my\u list
对象创建类tuple的实例。由于创建了一个新对象,这与C中的类型转换(如(tuple)my_list
)不同
< MyTuple tuple =元组(MyListList] MySuple = MySuple(MyLeLIST) .
< MyTytuple=tuple(MyListList])/Cudio>从
)不同(tuple)my_list
<代码> MyuthUpple = Muple Tuple = MyLoad 更接近C++ > MyTuple =新元组(MyListList] 。< /P> < P>我可以回答您的第二个问题,Python解释器是基于范围(局部、封闭、全局、默认)工作的。 例如:
def tuple(l_list):
print l_list
l_list = [1,2]
tuple(l_list)
在上述情况下,它不进行类型转换,而是执行上述函数。为什么呢?因为一旦我们开始执行,它就会搜索元组对象并执行任务。若并没有找到,那个么它将考虑默认关键字并进行转换。简而言之,它纯粹是关于对象的作用域的我可以回答您的第二个问题,Python解释器基于作用域(本地、封闭、全局、默认)工作 例如:
def tuple(l_list):
print l_list
l_list = [1,2]
tuple(l_list)
在上述情况下,它不进行类型转换,而是执行上述函数。为什么呢?因为一旦我们开始执行,它就会搜索元组对象并执行任务。若并没有找到,那个么它将考虑默认关键字并进行转换。简而言之,它纯粹是在对象的范围上,但类型转换函数也是函数hanks@Ev.Kounis yes
tuple()
也是内置的。但是我可以在这里说我正在调用语句tuple(my_list)
中的tuple()
方法吗?函数调用和类型转换函数之间没有区别。您可以调用tuple
函数。它返回一个元组。故事结束。但是通常在int(x)
和在C(int)x
中,两者的工作原理相同,但约定不同,x
是浮点变量。在python中,int(x)
调用x.\uuuuu int_uuuu()
,可以是int.\uuuu
,float.\uuu.\uu
,numpy.int64.\uu int\uuu
等。根据x
的类型,但类型转换函数也是函数hanks@Ev.Kounis yestuple()
也是内置的。但是我可以在这里说我正在调用语句tuple(my_list)
中的tuple()
方法吗?函数调用和类型转换函数之间没有区别。您可以调用tuple
函数。它返回一个元组。故事结束。但是通常在int(x)
和在C(int)x
中,两者的工作原理相同,但约定不同,x
是浮点变量。在python中,int(x)
调用x.\uuuuu int_uuuu()
,可以是int.\uuuu
,float.\uuu.\uu
,numpy.int64.\uu int
等。根据x
的类型,我同意将tuple
作为返回的tuple对象。但在内部,它将如何初始化/转换列表为元组?通过调用类的构造函数之类的方法?如果我错了,请纠正我?正如雅克·高丁所说,它确实像构造器一样工作。它不仅可以转换list
,还可以转换任何可转换的对象。它不像构造函数那样工作:tuple是一个类是@bobrobbobtuple
是一个类,但是tuple
类的初始化方法将初始化它。对不起,我只是为了避免误解而学究。它不像一个构造函数,它是一个构造函数,我同意tuple
返回tuple对象。但在内部,它将如何初始化/转换lis