python 基础笔记1

打印对象的所有属性,类似于java的tostring

使用对象的__dict__属性

或者使用这个

list = []
print(dir(list))
判断对象是否有对应属性,非常重要!开发工具和编译器不会告诉我们具体的变量类型。导致调用不存在的属性程序报错
list = []
if hasattr(list, 'remove'):
    print("ok")
else:
    print("no")
判断list里边的dict是否包含具体元素

注意这个方法和hasattr区分开!这个是dict字典专用的,上面的是对象使用的

obj1 = {'name':'yinkai','sex':'man'}
obj2 = {'sex':'man'}
list = []
list.append(obj1)
list.append(obj2)

for item in list:
    if 'name' in item:
        print(item['name']) #yinkai
查看某个函数的用法
help(range(0, 1))
image.png
py定义一个类,使用面向对象的思想来构造对象

定义构造函数__init__()

需要显示的给属性赋值,非常不方便。于是我们可以使用构造函数 init()

class Video(Base):
    __tablename__ = 'video'
    video_id = Column(Integer, primary_key=True)
    video_title = Column(String)
    video_pic = Column(String)
    video_url = Column(String)
    video_date = Column(String)
    category_id = Column(Integer)

    #構造函數
    def __init__(self, video_id, video_title,video_pic,video_url,video_date,category_id):
        self.video_id = video_id
        self.video_title = video_title
        self.video_pic = video_pic
        self.video_url = video_url
        self.video_date = video_date
        self.category_id = category_id
        print(self.__dict__)

    # 構造函數
    def __init__(self,video_item):
        self.video_id = video_item['video_id']
        self.video_title = video_item['video_title']
        self.video_pic = video_item['video_pic']
        self.video_url = video_item['video_url']
        self.video_date = video_item['video_date']
        self.category_id = video_item['category_id']
        print(self.__dict__)

    # 定义类方法必须要加上self形参
    def tostring(self):
        print(self.__dict__)

定义了构造函数的话,可以这样使用, 构造一个对象可以这样:

 VideoA= Video( video_id=14,video_title='ff', video_pic='18012345678', video_url='2000.00', video_date='2019-03-07 18:04:29', category_id=2)
对象唯一id
list = []
print(id(list))
判断变量的数据类型

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。
  • isinstance() 会认为子类是一种父类类型,考虑继承关系。
  • 如果要判断两个类型是否相同推荐使用 isinstance()。

对于基本类型来说 classinfo 可以是:
int,float,bool,complex,str(字符串),list,dict(字典),set,tuple
要注意的是,classinfo 的字符串是 str 而不是 string,字典也是简写 dict。

使用isinstance

arg=123
isinstance(arg, int)    #输出True
isinstance(arg, str)    #输出False
isinstance(arg, string) #报错

使用type

list = []
print(type(list))
url字符串转dict对象
from urllib import parse
cookie_str = "pgv_pvi=8857950208; pgv_si=s284531712; _qpsvr_localtk=0.18972080698488325; ptisp=ctc; ptui_loginuin=489277624; uin=o0489277624; skey=@XqhUWo6W1; RK=yaB9HxZpeO; ptcz=f9d80edce989e1467cf35b596a7901c19b0edf315be94f768f9e8fb144a644a0; p_uin=o0489277624; pt4_token=9rP1mk4KGMZkcO5L-ve8Kwp5ov-HRtzu4YoQvZ39m60_; p_skey=MnhPb94fnLu0IECSUIuYydZVEYR0F5GwcHgMq91CYuw_; pgg_pvid=8132141056; pgg_ssid=1200547840"
cookie_dict = dict(parse.parse_qsl(cookie_str))
for item in cookie_dict:
    print(item+'==>'+cookie_dict[item])
多返回值
#查询视频
def selectVideo():
    arrList = []
    # 执行SQL
    cur = _instance.execute(
        "SELECT video_id,video_url FROM `video` WHERE `state` = 1 "
    )
    list  = cur.fetchall()
    for item in list:
        object = {}
        object['id'] = item.values()[0]
        object['url'] = item.values()[1]
        arrList.append(object)

    return arrList,len(list)
生成随机数

1、闭区间,生成1到20之间包过节点的随机数

import random
print(random.randint(1,20))

2、从字符串中随机选取一个字符元素

import random
print( random.choice('tomorrow'))

3、从list中随机区一个元素

import random
list = [1,2,3,4]
print(random.choice(list))
py读取系统环境变量
import os
environ = os.environ
print(environ['JAVA_HOME'])
判断环境变量是否定义
import os

if "JAVA_HOME" in os.environ:
    print('ok')
else:
    print('no')

环境变量最好以下划线连接,不要用点. 点最后也会转为下划线_

导入数字文件名的py文件

比如这里是 56.py 文件

wl=importlib.import_module("56")
from apscheduler.schedulers.blocking import BlockingScheduler
指定递归深度

默认超过递归深度报错:
scan_1 | RecursionError: maximum recursion depth exceeded while calling a Python object

sys.setrecursionlimit(1000000)

几种数据直接作为if条件

   if '':
        print(True) False
    else:
        print(False)

    if None:
        print(True) False
    else:
        print(False)

    if ' FF':
        print(True)  True
    else:
        print(False)

    if []:
        print(True) False
    else:
        print(False)

    if {}:
        print(True) False
    else:
        print(False)

数组按下标判断是否存在

这种方式如果不存在就会报list range异常
list =[1,2,4]
if list[2]:
print(list[2])

这样做

def vali(list, i):
    if list:
        if i or i == 0:
            size = len(list)
            if size == 0:
                return False
            elif size - 1 >= i:
                return True

    return False


if __name__ == '__main__':
    list =[1,2,4]
    if vali(list,5):
        print(list[5])

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容