首页 > 分享 > Python中函数加括号和不加括号的区别

Python中函数加括号和不加括号的区别

先说结论,再举实例验证。

结论:
在Python中,

函数加括号是指对此函数的调用,

函数不加括号是指调用函数本身(的内存地址),也可以理解成对函数重命名(希望这对你理解两者的区别有所帮助,如果你觉得没有帮助那就忽略此段逗号后面的内容)。

举个栗子。可能比较长,但耐心看的话你一定会有收获,不单单局限于题目问题本身。

我在自学《Python编程从入门到实践》第9章进行代码复写时,导入类这块一直无法得到自己想要的结果,如下所示:

from car import Car my_new_car = Car('audi', 'a4', 2016) print(my_new_car.get_descriptive_name) my_new_car.odometer_reading = 23 my_new_car.read_odometer() 1234567

输出结果

<bound method Car.get_descriptive_name of <car.Car object at 0x000002EAB6F7EF60>> This car has 23 miles on it. 12

第一行<bound method …>是什么意思?后来才知道后面那一串其实就是函数的内存地址,但当时网上没找到类似问题的回答,只是在搜索答案的过程模糊意识到可能跟我编写的类,也就是import的对象Car的方法有关。于是开始翻看Car的源代码,发现get_descriptive_name这个函数的代码如下所示:

def get_descriptive_name(self): """返回整洁的描述性信息""" long_name = str(self.year) + " " + self.make + " " + self.model return long_name.title() 12345

你会发现,这个函数只有代表它自身的形参,也就是说在调用该函数的时候是无法传参的。可是,这个发现对解决题目问题似乎没有帮助。

不过,也正是借助这个发现,我认识到是自己在调用此函数时没有在后面加括号。因为我是要调用此函数的方法,结果没有加括号让Python以为我要调用函数本身。经过更正后,如下所示:

from car import Car my_new_car = Car('audi', 'a4', 2016) print(my_new_car.get_descriptive_name()) my_new_car.odometer_reading = 23 my_new_car.read_odometer() 1234567

输出结果:

2016 Audi A4 This car has 23 miles on it. 123

Profect !

相关知识

for语句没有中括号.doc
查找和替换字符类中的花括号
Python常见的错误以及其解决方案
在 Python 中构造 GraphQL 查询字符串的最佳方法
dotnet核心api返回空花括号数组
SKYNE/python
科学网—为什么生态学家要学习Python或者R?
判断花括号是否匹配
【李刚
python内置函数可以返回列表、元组

网址: Python中函数加括号和不加括号的区别 https://m.huajiangbk.com/newsview112820.html

所属分类:花卉
上一篇: 心型装饰花及其制作工艺和用途的制
下一篇: 第五章 函数作业一