python继承

Python网络编程05----django与数据库的交互

旧时模样 提交于 2019-12-08 22:58:19
介绍 Django为多种数据库后台提供了统一的调用API,在Django的帮助下,我们不用直接编写SQL语句。Django将关系型的表(table)转换成为一个类(class)。而每个记录(record)是该类下的一个对象(object)。我们可以使用基于对象的方法,来操纵关系型数据库。 设置数据库 设置数据库需要修改 settings.py 文件 如果使用的数据库是mysql: [python] view plain copy DATABASES = { 'default' : { 'ENGINE' : "django.db.backends.mysql", 'NAME' : "djangodb", 'HOST' : "localhost", 'USER' : "root", 'PASSWORD' : "123456", } } PORT如果不设置,会使用默认端口3306 如果没有安装mysql,你也可以使用sqlite。SQLite非常适合测试,甚至可以部署在没有大量并发写入的情况下。 由于SQLite使用的本地文件系统作为存储介质并且用原生的文件系统权限来做访问控制,像主机、端口、用户、密码这种信息统统不需要 只需要输入如下信息: [python] view plain copy DATABASES = { 'default' : { 'NAME' : r 'C:

Python之threading模块的使用

风流意气都作罢 提交于 2019-12-08 16:40:41
作用:同一个进程空间并发运行多个操作,专业术语简称为:【多线程】 1、任务函数不带参数多线程 #!/usr/bin/env python # -*- coding: utf-8 -*- import threading def worker(): print('worker...') threads = [] for i in range(3): task = threading.Thread(target=worker) threads.append(task) task.start() print(threads) threading_simple.py 运行效果 [root@ mnt]# python3 threading_simple.py worker... worker... worker... [<Thread(Thread-1, stopped 140040860006144)>, <Thread(Thread-2, stopped 140040860006144)>, <Thread(Thread-3, stopped 140040860006144)>] 2 、任务函数带参数多线程 #!/usr/bin/env python # -*- coding: utf-8 -*- import threading def worker(num): print(

Python - 派生类初始化父类的__init__构造函数

*爱你&永不变心* 提交于 2019-12-08 14:25:56
【 Python单继承 】 当父类的__init__构造函数中需要对数据进行初始化时, 在其派生的子类的__inti__方法中需要额外调用父类的__init__函数完成父类的初始化; class Base(): def __init__(self,character="%"): self.character = character def show(self): return self.character class Derived(Base): def __init__(self): super().__init__() self.derived_data = 99 def derived_Show(self): print(str(self.derived_data)+super().show()) class A(): def __init__(self): self.X = Derived() if __name__ == "__main__": a = A() a.X.derived_Show() 分析: 派生类如果缺少super().__init__()则报错; 当父类的__init__中没有初始化操作时(如下),派生类中可不比加对父类的初始化( 推荐添加 )。 class Base(): def __init__(self): pass def show(self):

Python格式化保存json文件

吃可爱长大的小学妹 提交于 2019-12-08 10:59:00
json.dumps() 直接把常用参数列一下好了 参数名 解释 obj 要存入json文件的python对象 cls 默认None,则默认JSONEncoder编码,若有赋值,则是继承此类重写default方法,如下 class MyEncoder (json.JSONEncoder) : def default (self, obj) : if isinstance(obj, bytes): return obj.decode( "utf-8" ) return json.JSONEncoder.default(self, obj) json值若有byte类型,json.dumps(obj,cls=MyEncoder)解码才能保存到文件中 ensure_ascii 设置为False的话才可以把中文以中文的形式存到文件里,否则会是’\xXX\xXX’这种 indent 缩进的空格数,设置为非零值时,就起到了格式化的效果,比较美观 也就是说在使用json.dumps()的时候设置一下indent参数的值就好了。比如json.dumps(json_dict, indent=4),加与不加的区别如下: 不加indent: {“title_pinyin”:”gywxw”,”title”:”隔云勿相望”,”url”:” http://www.ty2016.net/book/gywxw/ “

python基础语法总结(六)-- python类与OOP面向对象特性

被刻印的时光 ゝ 提交于 2019-12-08 04:46:46
python常用系统函数方法与模块 python基础语法总结(一)-- python类型转换函数+文件读写 python基础语法总结(二)-- 函数function python基础语法总结(三)-- 数与字符串 python基础语法总结(四)-- list列表 python基础语法总结(五)-- 字典dic + 元组tuple python基础语法总结(六)-- python类与OOP面向对象特性 一. 类 1. 定义 ### 定义类 class Animal: # 定义一个类animal """测试类Animal""" color = "black" # 定义属性:颜色 age = 0 # 定义属性:年龄 name = "" # 定义姓名:name def jump(self): # 定义类的方法,方法第一个入参必须是实例本身,可以不用字面量'self'表示,但本质仍然是实例本身为入参 print("can't jump") def eat(self, food): # 有参数的方法 print("eat " + food) def __healthy(self): # 私有方法 print("easy") __habit = "think" # 定义私有变量, 以__双下划线开头的属性,为私有属性 def get_habit(self): # 读取私有属性 """得到私有属性

史上最全的Python面向对象知识点疏理

亡梦爱人 提交于 2019-12-07 15:19:08
面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写。 实例变量:定义在方法中的变量,只作用于当前实例的类。 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。 创建类 a 变量是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 P 访问。 第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法 self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。 self代表类的实例,而非类 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。 输入: 输出: 从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.class

Python中的静态方法?

天涯浪子 提交于 2019-12-07 10:18:30
Python中是否可以有无需初始化类即可调用的静态方法,例如: ClassName.static_method() #1楼 我认为 史蒂文实际上是对的 。 为了回答最初的问题,然后,为了建立一个类方法,只需假设第一个参数不会成为调用实例,然后确保仅从类中调用该方法。 (请注意,此答案是针对Python 3.x的。在Python 2.x中,您将在调用类本身的方法时遇到 TypeError 。) 例如: class Dog: count = 0 # this is a class variable dogs = [] # this is a class variable def __init__(self, name): self.name = name #self.name is an instance variable Dog.count += 1 Dog.dogs.append(name) def bark(self, n): # this is an instance method print("{} says: {}".format(self.name, "woof! " * n)) def rollCall(n): #this is implicitly a class method (see comments below) print("There are {} dogs

Python中的静态方法?

前提是你 提交于 2019-12-07 10:12:45
Python中是否可以有无需初始化类即可调用的静态方法,例如: ClassName.static_method() #1楼 我认为 史蒂文实际上是对的 。 为了回答最初的问题,然后,为了建立一个类方法,只需假设第一个参数不会成为调用实例,然后确保仅从类中调用该方法。 (请注意,此答案是针对Python 3.x的。在Python 2.x中,您将在调用类本身的方法时遇到 TypeError 。) 例如: class Dog: count = 0 # this is a class variable dogs = [] # this is a class variable def __init__(self, name): self.name = name #self.name is an instance variable Dog.count += 1 Dog.dogs.append(name) def bark(self, n): # this is an instance method print("{} says: {}".format(self.name, "woof! " * n)) def rollCall(n): #this is implicitly a class method (see comments below) print("There are {} dogs

python学习——基础(八)

旧街凉风 提交于 2019-12-07 09:42:52
python 内置了 一套 try...except...finally... 的错误处理机制; try: print 'try' r = 10 / 0 print 'result:', r except ZeroDivisionError, e: print 'except:', e finally: print 'finally' 结果: try except: integer division or modulo by zero finally finally语句块是一定会执行的; 此外,如果没有错误发生,可以在 except 语句块后面加一个 else ,当没有错误发生时,会自动执行 else 语句: try: print 'try' r = 10 / 1 print 'result:', r except ZeroDivisionError, e: print 'except:', e else: print 'no error' finally: print 'finally' 结果: try result: 10 no error finally Python所有的错误都是从BaseException类派生的,常见的错误类型和继承关系看这里: https://docs.python.org/2/library/exceptions.html#exception

深刻理解Python中的元类

家住魔仙堡 提交于 2019-12-07 08:22:26
译注: 这是一篇在 Stack overflow 上很热的帖子。提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是e-satis同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到Python的官方文档中去。而e-satis同学本人在Stack Overflow中的声望积分也高达64271分。以下就是这篇精彩的回复(提示:非常长) 类也是对象 在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立: 1 2 3 4 5 6 >>>classObjectCreator(object): … pass … >>> my_object=ObjectCreator() >>>printmy_object <__main__.ObjectCreatorobjectat0x8974f2c> 但是,Python中的类还远不止如此。类同样也是一种对象。是的,没错,就是对象。只要你使用关键字class