Python的类继承dict、list、set之后,该类的类方法怎么获取它的长度

Python的类继承dict、list、set之后,该类的类方法怎么获取它的长度?

 class Account(list):
    def __init__(self, account):
        list.__init__([])
        self.append(account)

    def getlen1(self):
        print(len(self))

    @classmethod
    def getlen2(cls):
        print(len(cls))

if __name__ == '__main__':
    a = Account(['jone', 27, '36'])
    a.getlen1()
    a.getlen2()

执行方法2会报错:
图片说明

0

3个回答

cls是类,self是自身,super才是基类。用cls访问的是类的静态方法,所以不能调用len

1

为啥要这么写 ,类的方法中只能调用类的属性,所以执行不成功,我瞎改了下,你可以看看:
class Account(list):
ll = []
def init(self, account):
list.__init__([])
self.append(account)

def getlen1(self):
    print(len(self))
    print self

@classmethod
def getlen2(cls,self):
    cls.ll = self
    print cls.ll
    print(len(cls.ll))

if name == '__main__':
a = Account(['jone', 27, '36'])
a.getlen1()
a.getlen2(a)

输出:
1
[['jone', 27, '36']]
[['jone', 27, '36']]
1

0
qq_32040767
碎破星空 想用类方法打印元素的长度的。类方法,看来不行。谢谢。
一年多之前 回复

类方法可以访问类属性,至于能不能访问对象属性,查一查书

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python中list,dict,set的总结
list 基本特性 有序可变,元素可以是任何已知的数据结构 初始化 a = [] a = [1,3,54] a = [1, '34', (2,4)] 增删改查 a.append() a.extend() a.pop() a.pop(index) a[0] = 'need' a.clear() x in a 遍历 for x in l...
python 基础类型之list、tupe、set、dict
列表(list): >>> a=['Jordan', 'Kobe', 'T-mac'] >>> a ['Jordan', 'Kobe', 'T-mac'] >>> type(a) <type 'list'> list是一种有序的集合,在实现上是用链表存储。 元组(tuple): >>> a=('Jord
python list/tuple/dict/set/deque的简单比较、优化和时间复杂度(表格)
参考:(以下很多地方有参考的链接我统一放在这里) 基于python2.7,不是完全完整,基于目前所学分析,后面有其他会补充,主要也是为了可观性; 关于时间复杂度,参考: · 英文:https://wiki.python.org/moin/TimeComplexity · 中文:http://www.orangecube.net/python-time-complexity
python3-学习笔记--列表(list),元组(tuple),字典(dict),集合(set)
一,list   (一),声明方式 list1 = ['Google', 'Runoob', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = ["a", "b", "c", "d"]; (二),访问列表 与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。 两者不一样的是,获取的类型不一样,截取的是list类型,而下标获取的是...
Python编程技巧-根据条件从list dict set中筛选数据
从列表list中筛选数据from random import randint# 生成由十个范围在-10 ~ 10 的数组成的list l = [randint(-10, 10) for _ in range(10)] print(l) # 从列表l中滤出值大于等于0的值,返回给l2 l2 = filter(lambda x: x >= 0, l) print(list(l2)) l3 = [x fo
python深拷贝浅拷贝
问题1: 将列表c添加到列表a,b之中,修改c中的值,a,b会变化吗? a = list() b = list() c = [2,3] a.append(c) b.append(c) print(a,b) 输出:[[2, 3]] [[2, 3]] #修改C中第一个元素 c[0] = 1 print(a,b) 输出1:[[1, 3]] [[1, 3]] ,即改变c中元素,a,b也发生了变化...
Python数据结构讲解
Python数据类型使用 string list dict set number方法使用
廖雪峰python3.6教程笔记3-Python基础之使用list, tuple, dict和set
一listPython内置的一种数据类型是列表:list,是一种有序的集合。特性:1: 用len()函数可以获得list元素的个数2: 用索引来访问list中每一个位置的元素,记得索引是从0开始的:3: 如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素。4: list是一个可变的有序表,所以,可以往list中追加元素,指定位置插入元素,删除元素,替换元素。appe...
python中list ,tuple,dict,set的关系以及不可变对象解释(图文详解)
list 1.list可以放进tuple (易知) 2.list可以放入dict作为value,但不可以作为key >>> key = [1, 2, 3] >>> d[key] = 'a list' Traceback (most recent call last): File "<stdin>", line 1, in <mod...
Python快速入门教程二:list、tuple、dict、set
一、list列表,可变、有序的集合。classmates = ['Michael', 'Bob', 'Tracy'] print(classmates)可以用len()方法获取list元素个数。如len(classmates)结果是3。用索引访问,如classmates[0]是'Michael',要特别注意,和C语言一样,从0开始而不是从1开始!还可以用负数,-1表示最后一个元素,-2表示倒数第二...
Python 中list ,set,dict的大规模查找效率
很多时候我们可能要频繁的进行元素的find 或in操作,本人一直天真的以为python的list做了hash,通过红黑树来高效查找···直到今天我真正来测试它和set,dict的查找效率时,才发现自已想太多了!!!! 先看代码:__author__ = 'jmh081701' import numpy import time l=[] sl=set() dl=dict() r=numpy.ran
Python中关于str,list,tuple,set,dict的区别和联系
注:    其他的具体的在这就不说了,很多简单的查询就可以了。   这里我就写些干货。干货   1:str是不可改变的,可以使用单引号和双引号一样的 ,其内置函数就不说了。   2:list ,用[]来表示,元素之间用逗号隔开,元素包括,number,str,list都可以,其可变。  3:tuple, 用()来表示,元素之间用逗号隔开,元素可以是,number,str,list都可以,但是其li...
Python 3 学习笔记(4)使用dict和set 与 调用函数
使用dict和setdict为Python内置字典拥有极快的查找速度 例:查找成绩储存内容时 除了初始化存入 还可以利用key直接存入 上例中 名字是key 多次赋值 后值会覆盖前值 如图:若要查找的key不存在那么会报错可以通过in 与get来判断key是否存在 如图:利用get时 若key不存在可以返回None(无) 或者自己指定 如图:pop(key)用来删除一个key 如图:dict比li...
Jinja2迭代Python中的list列表和dict字典
经常使用flask的快速搭建效果,总是忘记,记录下 代码示例 # 迭代列表 {% for row in rows %} {{ row }} {% endfor %} # 迭代字典 {% for key, value in row.items() %} {{ key }} {{ value }} {% endfor %} ...
<Python> 递归展开嵌套列表等可迭代对象(list,dict,set...)
展开嵌套列表算法是一个常考点,既是基础,但是要写好也不简单,我见过很多个版本,老手和新手之间的差别简直堪比云泥。接下来分享一个高效又巧妙的版本,代码也很短。 今天在知乎同样看到了一下这段代码,是之前flatten的lambda版本,可以说是把pythonic思想进一步升华了,实在是太优美啦。 flatten = lambda nested: list(filter(lambda _...
Python 基础知识(string、list、dict、set、lambda持续更新。。。)
1、string # 2、list 3、dict 4、Set 集合(set)是一个无序的不重复元素序列,区分大小写。可以使用大括号 { } 或者 set() 函数创建集合,创建一个空集合必须用 set() 而不是 { }, { }默认是用来创建一个空字典。 #创建一个set set_1 = set() set_2 = {'a', 'b'} set_3 = set(&amp;amp;amp;amp;amp;amp;quot;Hello World...
查询set、dict、dict.keys()的速度对比
当我们统计文本的词频时,通常需要查询当前词是否已经出现过,如果出现过,那么次数增1。通常我用dict来保存词和词频。我常用的方式是:if word not in vocab_dict: vocab_dict[word] = 0 vocab_dict[word] += 1用了很久觉得速度还行。 后来看到有大神是这么用的:if word not in vocab_dict.keys():
python数据类型list、tuple、dict和set
1.概念List list是一种有序的集合,可以随时添加和删除其中的元素。 tuple tuple和list非常类似,但是tuple一旦初始化就不能修改 dict 1.全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 2.list和tuple不支持key=>value形式 list比较,dict有以下几个特点: 1.
Python中四种内置数据类型(list,tuple,set,dict)的区别
List &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list是一种有序集合,能随时添加或删除其中的元素,元素类型可以不一样,也可以定义一个空list &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;构造list直接用[ ]将list的所有元素括起来,用逗号分割;通常把list赋值给一个变量,通过变量来引用list &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;例子:L=[12, ‘Chin...
python中set、list、tuple、dict相互转化
list1 = [1, 2, 3, 4] tuple1 = (5, 6, 7, 8) set1 = {9, 10, 11, 12} dict1 = {"a": "13", "b": "14", "c": "15", "d": "16"} 转为list print(list(tuple1)) = [5, 6, 7, 8] print(list(set1)) = [9, 10, 1...
Python学习笔记(九)
列表生成式: >>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 复杂表达式: tds = ['%s%s' % (name, score) for name, score in d.iteritems()] print '' print 'NameScore' print '\n'.join
python 列表list 元组tuple 字典dict 集合set 介绍
序列序列的两个特点: 1.索引操作符,从序列中抓取一个特定项目 2.和切片操作符,获取序列的一个切片,即一部分序列列表、元组和字符串都是序列,字符串是字符的序列,列表和元祖是任意类型的序列列表list,用中括号“[ ]”表示1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的 2.通过偏移读取 组成列表的值叫做元素(Elements)。每一个元素被标识一个索引,第一个索引
python中list与tuple,dict与set详解
在学习python基础过程中,整理的python中list与tuple,dict与set区别,
python中in在list和dict中查找效率比较
python中in在list和dict中查找效率比较首先给一个简单的例子,测测list和dict查找的时间:import timequery_lst = [-60000,-6000,-600,-60,-6,0,6,60,600,6000,60000]lst = [] dic = {}for i in range(100000000): lst.append(i) dic[i] = 1
【学习笔记】Python基础-字典Dict和Set和List与Str扩展
Dict使用大括号围起来,这里提供一种键值对的list表示方法 1. Dict {} 2. List [] 3. turple ()实例代码#!/usr/bin/env python3 # -*- coding: utf-8 -*- # 字典 dict 类似 Java的HashMap # Dict {} # List [] # turple () mDict = {"Lava":90, "Hu
python dict list 遍历的几种常见方法
list 遍历index,value list = ['one', 'two', 'three'] for i in list: print(list.index(i),i) #range for i in range(len(list)): print(i+1,list[i]) #enumerate for i, v in enumerate(list): ...
一个完整的类(python任何类只要继承这个方法,它的实例对象都可以转换成dict序列化)
一个完整的类(python任何类只要继承这个方法,他的实例对象都可以转换成dict) # 让一个类支持转换成dict()字典的基类(json.dumps方法序列化必须继承这个类) class ClassIterator: def __init__(self): self.iter_keys = [] # 对象转字典必须实现的方法,自动调用获取需要dict化...
python语言中list、tuple、dict、set的区别
Python的四个内置基本类型list、tuple、dict、set的作用和特点,特别是list和tuple非常容易搞混淆 1》list 列表在上一篇中我记录了list的具体用法,在这里对于它的用法就不做具体举例。 列表 list 是一种有序的集合,可以随时添加删除其中的元素。 它的用法: 1.创建:创建非空列表;创建空列表,再修改;类实例化创建; 2.添加:append()追加元素到列表末尾;i...
Python中list、tuple、str和dict之间的相互转换
1、字典(dict)dict = {‘name’: ‘Zara’, ‘age’: 7, ‘class’: ‘First’}1.1 字典——字符串返回:print type(str(dict)), str(dict)1.2 字典——元组返回:(‘age’, ‘name’, ‘class’)print tuple(dict)1.3 字典——元组返回:(7, ‘Zara’, ‘First’)print t
【python】dict和set的实现原理和性能
from random import randint def load_list_data(total_nums, target_nums): &quot;&quot;&quot; 从文件中读取数据,以list的方式返回 :param total_nums: 读取的数量 :param target_nums: 需要查询的数据的数量 &quot;&quot;&quot; all_data = [] ...
python 获取list tuple dict中最大和最小元素的操作
关于获得列表或者元组甚至是字典中最大或者最小的元素有很多种方法,如排序再取最前或最后,也可以直接使用函数获得,那么费或不说直接上干货 list = [1,2,3,4,5,8,7] tuple = (1,2,3,4,5,8,7) dict = {1:'a',2:'b',3:'3'} 方法一:先排序再取值(list和tuple操作一样) 列表 | 元组 >>>list = li
Python-list 和 dict 内置操作的时间复杂度
Python的 list 数据结构 操作 操作说明 时间复杂度 index(value) 查找list某个元素的索引 O(1) a = index(value) 索引赋值 O(1) append(value) 队尾添加 O(1) pop() 队尾删除 O(1) pop(index) 根据索引删除某个元素 O(n) inse...
字典类型(dict)与set集合以及各数据类型之间的转换
dict与list的优缺点: list:1、查找或插入数据会随着数据的增加而变慢          2、占用空间小,内存浪费少 dict:1、查找或插入数据快,不会随着数据的增加而变慢           2、占用空间大,内存浪费多 1、字典(dict) dict概述:使用键值对(key-value)方式存储数据 dict中key的特点:                      1、...
python 集合set为什么不能添加list,dict,set,但是可以添加tuple,constant
由于set中的元素必须是唯一(即hashable类型),因此必须是不可变类型的, 不可变类型:tuple ,constant 可变类型:list dict set 同理字典的key也不能为不可变类型。 所以归根结底,还是可变与不可变类型的问题。 ...
python类中实现dict的功能
dict的赋值和取值,形如 赋值test['key']=value 取值test['key'] 这两个表达方式的本质是类中的两个实例方法__setitem__和__getitem__ 直接上代码 class testsetandget: kk = {} def __setitem__(self,key,value): self.kk[key] = valu
Python-list列表、tuple元组、dict字典、set集合之间的类型转换
1、set,tuple,list 三种类型可以直接进行相互转换。 2、将dict转为set/tuple/list,只转换key。 3、若将set/tuple/list转为字典的时候,对set/tuple/list要求会高一些,set/tuple/list里面的元素必须元组(列表也行),元组中元素的个数必须是两个。 ...
Python3-读取数据并转为dict list字典列表的方法
Python-读取数据并转为dict list字典列表的方法 0x01 摘要 有时候我们想读取数据并直接转为字典的列表,下面介绍通过pandas.DataFrame.to_dic的实现方法。 0x02 原始数据 import numpy as np import pandas as pd music_info = pd.read_table('musics.txt') print('数据预览:',...
python3复习篇(1):输入输出,list,tuple,Dictionary,set
大一暑假没什么事,就觉得python爬虫很好玩,所以,就着手于学习了一下python以及一些 “类” 的基础知识。不过大学里一直在用c++写一些算法,现在想用python实现一下,所以就对python复习了一下。 一、简单的输入输出 a= input(&quot;请输入:&quot;); print (&quot;你输入的是:&quot;,a); 请输入:123 你输入的是: 123 注释:python就像JS一样,创建变...
python去重,一个由dict组成的list的去重
背景:有一个list,里面的每一个元素都是dict,根据某一个key进行去重,在这里,key代表question #!/usr/bin/env python # -*- coding: utf-8 -*- # created by fhqplzj on 2017/12/07 上午11:38 from itertools import groupby from operator import it
JSTL 获取 Set,List的长度。
有一个需求就是在后台 设置一个List,或者Set,前台可以用forEach遍历,但是什么 获取它的长度呢?? 加入标签 使用一下标签访问: ${fn:length(SetVar)}