请问python为什么调用函数时有时要xxx.xxx, 有时却是在括号里?xxxx.upper(), xxxx.lower()这个写法里 xxxx是程序中的变量,.upper、.lower都是类方法;
len(xxx) , 这个是函数调用,其中 xxxx是参数 。
在调用一些Python里的函数的时候 为什么有些函数需要实例化有些不需要?如果一个方法是静态方法或类方法 , 那么 , 可以直接调用 。
如果一个方法不是静态的 , 那么,它会需要self来访问实例中的某些属性,那么就只能在实例上调用 。
你给出的代码中 , tensor_trans= transforms.ToTensor()这一句,实际上只是简化引用 , 并没有实例化transforms 。
作为示例:
class MyUtil(object):
....@staticmethod
....def fn1():
........return 'a'
....def fn2(self):
........return 'b'
对方法fn1,我们可以直接调用:
x = MyUtil.fn1()
但对于fn2,则只能实例化后调用:
util=MyUtil()
x = util.fn2()
当然,对于fn1 , 也可以在实例上调用:
util=MyUtil()
x = util.fn1()
在Python中使用字符串调用函数已有字符串形式的函数名称,那么如何调用这个函数呢?
通过调用内置函数locals()和globals()返回的字典对象,就可以可以获得名称与对象的映射关系 。其中 , locals()仅在全局范围内调用时可以获得函数对象 。我们来看以下的例子 。
需要注意的是,使用上述方法通过字符串调用函数时,为了系统的安全,防止执行任意函数,需要对函数名做一些处理,也就是使用统一的前缀为这些函数命名 。例如在上述例子中 , 使用前缀cmd_ 函数名的形式定义函数(cmd_help,cmd_sum) 。
在传入函数名字符串时,只传入函数名的后半部分(如"help","sum"),由程序添加前缀后组成完整的函数名,再调用该函数 。
对于类的成员函数,则可以使用getattr()获得类成员函数 。
【关于python函数调用时的信息】 上述代码通过字符串调用了类成员函数 , 与前一段代码执行的结果相同 。
此外,还可以使用字典将字符串与函数对应起来调用 , 缺点就是每增加一个函数需要相应在字典对象中添加相应的键值,增加代码维护工作量 。
以上代码在Python 3.6以上运行通过 。
python如何定义和调用函数1、函数定义
①使用def关键字定义函数
②
def 函数名(参数1.参数2.参数3...):
"""文档字符串,docstring,用来说明函数的作用"""
#函数体
return 表达式
注释的作用:说明函数是做什么的,函数有什么功能 。
③遇到冒号要缩进,冒号后面所有的缩进的代码块构成了函数体 , 描述了函数是做什么的,即函数的功能是什么 。Python函数的本质与数学中的函数的本质是一致的 。
2、函数调用
①函数必须先定义,才能调用 , 否则会报错 。
②无参数时函数的调用:函数名(),有参数时函数的调用:函数名(参数1.参数2.……)
③不要在定义函数的时候在函数体里面调用本身 , 否则会出不来,陷入循环调用 。
④函数需要调用函数体才会被执行,单纯的只是定义函数是不会被执行的 。
⑤Debug工具中Step into进入到调用的函数里 , Step Into My Code进入到调用的模块里函数 。
python函数调用时的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、python函数调用时的信息别忘了在本站进行查找喔 。
推荐阅读
- 十大即时战略单机游戏二战,好玩的单机即时战略
- bios怎么设置u盘启动,进去bios怎么设置u盘启动
- 摘西瓜怎么去水印小程序,摘西瓜怎么摘
- 包含windows系统迁移的词条
- u盘中一个文件没了怎么办,u盘里只有一个文件夹打不开
- 牛游冒险解谜单机游戏,牛游戏小游戏大全
- 飞行炮台游戏下载电脑版,飞行的炮弹
- go语言做机器人 go语言机器人
- linux命令行修改网口,Linux命令行修改ip