python高级用法

pipidi

zhujingdi1998@gmail.com

获取属性

proxy_iter = [_ for _ in getattr(GetFreeProxy, proxyGetter.strip())()]

getattr获取类的属性和方法然后直接调用

isinstance(proxy, bytes):
'''
返回布尔值
'''

检验是不是制定类型

------------------------------5/11--------------------------
更新一个不算高级用法的 简单用法 解答下当时的误区
很基础 不过忘记了 列表前开后关 由于第一个下标是0开始的 所以下标为列表长度是可以的

用下标遍历列表的时候 是可以用range(len(nums))因为python 的右括号是关闭的

------------------------------5/16---------------------------
搬运
os.path.basename(path)
返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素

os.path.basename(path)
返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。

-----------------------------5/31--------------------------------

classmethod用法

最近在研究scrapy 信号的时候有些关于@classmethod的迷惑 今天特地去看了大佬的博客 稍微写一些见解 由于python 一切都是对象 所以毫无疑问类也是对象 我们可以访问类的属性 @classmethod的用法也主要是通过传入一个类 对类的属性进行操作 或返回一个新的实例

def get_no_of_instance(cls):
    return cls.no_list
class Kls(object):
    no_list=0
    def __init__(self):
        Kls.no_list=Kls.no_list+1

print(get_no_of_instance(Kls))

在python2.2之后python引入了@classmethod类方法修饰符

class Kls(object):
    no_list=0
    def __init__(self):
        Kls.no_list=Kls.no_list+1
    @classmethod
    def get_no_of_instance(cls):
        return cls.no_list
class Kls(object):
    def __init__(self,data):
        self.data=data


    @classmethod
    def cmethod(cls):
        return cls(1)

也可以用它创建实例

阅读量