2671-张同学-算法方向-数据挖掘-就业:否 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

类方法,只操作类属性,不涉及实例属性

@classmethod

def xxx(cls): xxx函数名

类名.xxx()      

 

静态方法,应用于类内,可以强行调用类属性

@staticmethod

def 静态方法名(形参列表)

不能调用实例属性,方法

[展开全文]
1553_N_GX · 2021-05-21 · 解锁式学习 0

class studnet:

       company="sxt" 类属性

      count=0 类属性

       def __init__(self, name, age): 实例属性

                  self.a=name

                  self.b=age

                   student.count+=1 调用计数器

        def sayage(self): 实例方法

               print(age)

                               print(studnet.count,student.company) 实例方法中调用类属性

 

[展开全文]
1553_N_GX · 2021-05-21 · 解锁式学习 0

类对象创建

class student:

          def __init__(self,name,age):

                     self.a= name

                     self.b=age

           def sayage(self):

                  print(self.age)

 

[展开全文]
1553_N_GX · 2021-05-21 · 解锁式学习 0

实例方法:

def xxx(self,形参1)  xxx为函数名称

解释器调用为

class名.实例方法名(变量名)

Studnet.sayscore(S2)

isinstance(变量,class)判断变量是否是指定的class

[展开全文]
1553_N_GX · 2021-05-21 · 解锁式学习 0

类:产生对象的模具(也是对象),包含方法(函数)和属性(值)

def __init__ (self,参数1,参数2) 双下划线定义属性值

class Xxx:

 

[展开全文]
1553_N_GX · 2021-05-21 · 解锁式学习 0

对象:数据+处理方法(函数)

[展开全文]
1553_N_GX · 2021-05-21 · 解锁式学习 0

变量查找顺序

local内置函数-enclosed外部函数-global模块内-built in python

[展开全文]
1553_N_GX · 2021-05-20 · 解锁式学习 0

nonlocal_变量

在内部函数修改外部函数里变量

def outer():

     b= 10

      def inner():

            nonlocal b

             b=2

       inner() 内部函数被激活

       print(b) 新的b只能在outer()里使用

[展开全文]
1553_N_GX · 2021-05-20 · 解锁式学习 0

嵌套函数

def outer1():

         print()

         def inner2():

                 print()

         inner2() 内部函数须在outer里调用

 

[展开全文]
1553_N_GX · 2021-05-20 · 解锁式学习 0

eval()函数,将字符串当代码执行

s="print("a+b")"

eval(s)

[展开全文]
1553_N_GX · 2021-05-19 · 解锁式学习 0

lambda生成简单匿名函数

f=lambda a,b,c: a+b+c

f(2,3,4)

[展开全文]
1553_N_GX · 2021-05-19 · 解锁式学习 0

def f1(a,b,*c) *c代表元组可以接受多个参数

def f1(a,b,**c) **c代表元组可以接受多个参数

可变参数之后的参数需要强制命名

[展开全文]
1553_N_GX · 2021-05-19 · 解锁式学习 0

对象浅copy之后修改会影响原对象

对象深copy之后修改,对原copy对象不造成影响

[展开全文]
1553_N_GX · 2021-05-19 · 解锁式学习 0

函数操作全局可变变量,本质是传递堆中对象地址,一旦在函数中对可变变量修改,即便出了函数栈帧,全局变量也会改变

[展开全文]
1553_N_GX · 2021-05-19 · 解锁式学习 0

列表推导式,生成列表

[表达式 for item in 可迭代对象]

[表达式 for item in 可迭代对象 if 条件]

[(a,b,c) for a in 可迭代对象 for b in 可迭代 for c in 可迭代]

字典推导式,生成字典,多于与统计众数

dict={ key:表达式 key in 可迭代对象} 表达式为key的函数

str="avvjfkjkjadjla"

dict={key:str.count(c) for c in str}

集合推导式

b={x for x in 可迭代 if条件}

元组 生成器推导式

gn=(x for x in 可迭代) 只能用一次

print(tuple(gn))

[展开全文]
1553_N_GX · 2021-05-18 · 解锁式学习 0

zip并行迭代

name=(a,b,c,d)

age=(1,2,2)

for name, age in zip(name,age):

          print("{0}-{1}".format(name ,age))

[展开全文]
1553_N_GX · 2021-05-18 · 解锁式学习 0

集合是无序可变,元素不能重复,底层是字典,所有元素是字典的键

a={key1,key2,key3}

a.add(newkey)

a.remove(key)

a.clear()

a=set(list)

a=set(tuple)

a|b 或者a.union(b) 并集

a&b a与b的交集

a-b 差集

[展开全文]
1553_N_GX · 2021-05-18 · 解锁式学习 0

字典查找的底层逻辑

key1值先转换散列码,先取散列码右侧数组位数的值,取出与其等值的引索对应的key2, 对key1和key2进行哈希值验算,一样则取出来value,不一样则再取key1散列值右侧数组位,得到新引索,继续比较

键必须可散列,数字,字符串,元组

自定义键必须满足

支持hash()函数

支持_eq_()方法检测相等

a==b为真,则 hash(a)==hash(b)为真

[展开全文]
1553_N_GX · 2021-05-18 · 解锁式学习 0

字典底层原理

散列表:稀疏数组,数组的基本单元bucket

bucket包含key和value

key通过计算哈希值(散列码),根据数组位数从右向左取2进制值,并于散列表的索引对比,有空位就放入,无空位哈希值继续左移一个数组位数,继续配位。如果历遍仍无配位则数组扩容。

数组满60%,进行扩容

[展开全文]
1553_N_GX · 2021-05-18 · 解锁式学习 0