当前位置:
首页 > Python基础教程 >
-
Python类的常用高级函数汇总
这篇文章主要介绍了Python类的常用高级函数汇总,文章围绕python类函数展开详细内容,具有一的的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
1.基础介绍
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
2.定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
3.init
# coding:utf-8
if __name__ == '__main__':
'''
定义:def __init__(self,参数1,参数2......):
......
使用:在类实例化时触发 类名(参数1,参数2.......)
'''
class A(object):
def __init__(self, name, sex):
print(f'name is {name}, sex is {sex}')
a = A('xie', 'man') # name is xie, sex is man
4.getattr
# coding:utf-8
if __name__ == '__main__':
'''
定义: def __getattr(self,属性名)
使用:在访问类不存在的或无权限的属性时触发 object.属性名
'''
class B(object):
__name = 'rui'
name = 'xie'
def __getattr__(self, name):
return f'name is {name}'
b = B()
print(b.name) # xie
print(b.__name) # name is __name
print(b.sex) # name is sex
print(b._B__name) # rui
5.setattr
# coding:utf-8
if __name__ == '__main__':
'''
定义: def __setattr__(self,属性名,属性值)
使用: 给类设置属性值时触发 object.属性名 = 属性值
'''
class C(object):
name = ''
__name = ''
__sex = ''
def __setattr__(self, key, value):
print(f'I want set key:{key},value:{value}')
c = C()
c.name = 'xie' # I want set key:name,value:xie
c.age = '6666' # I want set key:age,value:6666
c.__sex = 'man' # I want set key:__sex,value:man
6.call
# coding:utf-8
if __name__ == '__main__':
'''
定义: def __call__(self,参数1,参数2......)
使用: 把类实例当做函数调用,通过object(参数1,参数2......)触发
'''
class D(object):
def __call__(self, *args, **kwargs):
print(f'args is {args},kwargs is {kwargs}')
d = D()
d(*(1, 2, 3), **{'name': 'xie'}) # args is (1, 2, 3),kwargs is {'name': 'xie'}
7.str
# coding:utf-8
if __name__ == '__main__':
'''
定义: def __str__(self)
使用: 打印对象时触发 print(object)
'''
class F(object):
def __str__(self):
return '通常用来描述类'
f = F()
print(f) # 通常用来描述类
到此这篇关于Python类的常用高级函数汇总的文章就介绍到这了,更多相关Python类的常用高级函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://blog.csdn.net/qq_29744347/article/details/122959011
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
开启SQLSERVER数据库缓存依赖优化网站性能
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比