最新消息:首页公告!

python 基础笔记 2(函数, 类)

浏览 共有条评论 关键词:python
新搜索营销
起因, 目的:
把很久以前,自己写的笔记发布出来。
现在粉丝多了,也不觉得丢人了。
为什么这些序号不连贯,因为有些很熟悉的东西,我都删了。

内建函数, 函数
zip()函数,利用 * 号操作符,可以将元组解压为列表。
我怀疑是zip的解包只能用一次。在内存中解开一次之后就销毁了。目前没有更好的证据。
内建函数 locals(), 返回一个字典,包含当前命名空间内的全部变量。
内建函数 map(function, iterable, …),是惰性的,返回一个迭代器。
内建函数 filter(function, iterable),
用于过滤序列,返回一个迭代器对象,可以使用 list() 来转换。
要在函数中将某个变量定义为全局变量,
在需要被定义的变量前加一个关键字global即可。
类:
如果想直接使用 self 作为一个可迭代对象的话,需要自己来实现一个 iter()方法。
7.str, 函数是为了调用__init__中的变量,在输出的时候,能以可读的方式展
示出来。。。是给用户看的。

repr()函数是给开发者看的,是一个地址,代码部分和__str__()是一样的,
所以创建一个类的时候,可以简写成: repr = str

读源码的时候看到一种写法,叫类的装饰器,可以更改类的属性,我简化了一下:


def change_name(cls):
    new_name = "hey"
    cls.name = new_name
    return cls

@change_name
class A:
    name = "halo"

if __name__ == '__main__':
    print(A.name)   # hey



@property # 只需要在类定义里修改相关代码即可,不需要在每一处调用修改
我的理解是,@property 只是比 @staticmethod 少了一对括号而已。
self.__hair = “black”, 这个是类的私有属性,防止外部来修改
以 self 作为第一个参数的方法都是实例方法。
类方法(class method)
会作用于整个类,对类作出的任何改变会对它的所有实例对象产生影响
可以从类直接调用,不必实例化, 类名也不需要括号: A.do_something()
鸭子类型(duck typing),如果它像鸭子一样走路,像鸭子一样叫,那么它就是一只鸭子。
在鸭子类型中,并不关注对象本身的具体类型,只关注它能实现的功能。
def str(self):
return self.name
repr = str
没必要过度构建(使用)类和对象,试试内建的数据结构。比如,collections 模块。
 

转载请注明:可思数据 » python 基础笔记 2(函数, 类)

人工智能数据标注服务
留言与评论(共有 条评论)
昵称:
匿名发表 登录账号
                 
   
验证码:
后台-系统设置-扩展变量-手机广告位-手机广告位-内容广告位三