从上面的角度看似乎很有道理 。
def fun():
pass
type(fun)
class 'function' #没有问题
class Cla():
def fun():
pass
@classmethod
def fun1(cls):
pass
@staticmethod
def fun2():
pass
i=Cla()
Cla.fun.__class__
class 'function' #为什么还是函数
i.fun.__class__ #这个还像话
class 'method'
type(Cla.fun1)
class 'method' #这里又是方法
type(i.fun1)
class 'method'#这里仍然是方法
type(Cla.fun2)
class 'function'?。U饫锶词呛?
type(i.fun2)
class 'function'#这里却是函数
事实上,上面的结果是可以解释的:
1,普通方法(老版中直接就是"instancemethod")在module中与在Class中定义的普通函数,从其本身而言是没有什么区别的,他们都是对象函数属性 。之所以会被说在Class中的定义的函数被称为方法 , 是因为它本来就是面向将来的实例对象的 , 其实他们就是实例方法 , 这些方法是与实例相联系的(从实例出发访问该函数会自动赋值) 。所以你从Class访问仍然是一个函数
2,类方法("classmethod"),因为类同样是对象 , 所以如果函数与类进行联系了话(与实例方法一样的模式)那么就能够这么说了!
3,静态方法 , 虽然定义在内部,并且也较方法,但是却不与任何对象联系,与从类访问方法是一样的,他们仍然是函数 。
这样看来上面的定义可以改改了:
函数的定义自然不变 。
方法的定义可以是这样的,与某个对象进行绑定使用的函数 。注意哦 。绑定不是指" . "这个符号,这个符号说实在的只有域名的作用 。绑定在这里是指,会默认赋值该绑定的对象 。
python3--内置函数python的常用内置函数
1.abs() 函数返回数字的绝对值
abs(-40)=40
2. dict() 函数用于创建一个字典
dict()
{}#创建一个空字典类似于u={},字典的存取方式一般为key-value
例如u = {"username":"tom","age":18}
3. help() 函数用于查看函数或模块用途的详细说明
help('math')查看math模块的用处
a=[1,2,3,4]
help(a)查看列表list帮助信息
4.dir()获得当前模块的属性列表
dir(help)
['__call__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
5.min() 方法返回给定参数的最小值 /参数可以为序列
a=min(10,20,30,40)
a
10
6. next() 返回迭代器的下一个项目
it = iter([1, 2, 3, 4, 5])
next(it)
1
next(it)
2
7. id() 函数用于获取对象的内存地址
a=12
id(a)
1550569552
8.enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中 。
a=["tom","marry","leblan"]
list(enumerate(a))
[(0, 'tom'), (1, 'marry'), (2, 'leblan')]
9. oct() 函数将一个整数转换成8进制字符串
oct(15)
'0o17'
oct(10)
'0o12'
10. bin() 返回一个整数 int 或者长整数 long int 的二进制表示
bin(10)
'0b1010'
bin(15)
'0b1111'
11.eval() 函数用来执行一个字符串表达式,并返回表达式的值
eval('2+2')
4
12.int() 函数用于将一个字符串会数字转换为整型
int(3)
3
int(3.6)
3
int(3.9)
推荐阅读
- 直播前锋突袭技巧,前锋突袭直装
- 如何缓存文件js,缓存 js
- 怎么让电脑不允许安装软件,电脑怎么设置不允许安装程序
- java画圆代码分析 javagui画圆
- 解谜游戏安卓画画平板,画室平板破解
- 华为提醒更新鸿蒙系统,华为提醒系统更新怎么办
- go语言初始化方式 go语言map初始化
- 硬盘接口没有电怎么办,硬盘电源接口不够
- flutter架构建设,flutter模块化构建