Python函数


Python面向对象

类和方法

对象object,实例instance

属于某个类的一个具体个体

类class

对同一类事物共同属性特征和能做事的概括 类名大写开头

类变量

属于某一个类的自己的变量

work(self)定义的时候

必须有,调用的时候不能传

1 定义类:
2 class 类名:
3 ....属性
4 ....方法
5 ....def 方法名(self,....):
6 #【第一个参数默认self,定义时必须有,调用不用传,是当前类的对象】

类定义完不调用,不会执行,类内方法需要通过对象调用

生成对象

通过构造方法生成。 类名(.....)

实例变量

属于对象他自己的属性 

1 zs = Ren()
2 zs.work()
3 zs.name='zhangsan' 《《《《
4 print(zs.name)

没有实例方法

构造方法/构造函数

生成对象必会调用构造方法

    • 方法名是固定的 __init__
    • 通过类名调用,即Ren()就调用
    • 不能写return语句,默认返回对象
    • 定义类时,若没有构造,系统默认创建
1 class Ren:
2 ....def __init__(self,a):
3 ....print('‐‐‐helloworld‐‐‐')
4 
5 zs=Ren(asfasaf) # 传到a里面

继承

子类继承父类

1 class BlackPerson(Ren,Animal):
2 ....color='black'
3 ....def run(self):
4 ........print('‐‐‐‐‐run fast‐‐‐‐‐')

子类间不能互相调用,没有关系

子类可以继承多个父类

注意避免逻辑混乱,相互继承,或既是父类又是父类的父类

高内聚,能复用尽可能复用

低耦合,能拆开尽可能拆开

继承尽量避免超过3代 

构造函数的继承

子类有用子类的

同时继承多个父类,用先继承的

父类还有父类,向上追溯

都没有,系统创建

同名属性的继承

同上,都没有就报错

同名函数的继承

override覆盖、overwrite重写:子类有父类同名的属性方法,方法名相同,参数也相同

overloading 重载:子类有父类同名的方法,方法名相同,参数不同

super(类1,对象1)

对象1调用类1的父类属性,方法

1 super(Ren,bp).run()

身份运算符is

通过判断存储id相同

isinstance(对象1,类1)

判断对象1是否是类1的对象,是返回True否返回False

isinstance() 与 type() 区别:

type() 不会认为子类是一种父类类型,不考虑继承关系。

isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。 

1 >>>a = 2
2 >>> isinstance (a,int)
3 True
4 >>> isinstance (a,str)
5 False
6 >>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
7 True

issubclass(类1,类2)

判断类1是否是类2的子类,是返回True否返回False

private

__开头,私有的,有效范围在class内部,出了class边界,类对象子类对象都不能调用

protected

_开头,受保护的,不建议跨文件包调用,但是from...import* 出错

模块

调用:

本文件调用:

方法名(....参数值....)

跨文件调用: 

1 #########[法1]#########
2 import 包1.包2.包3....文件名
3 包1.包2.包3....文件名.方法名(....参数值....)
4 #########[法2]#########
5 from 包1.包2.包3....文件名 import 方法名【*:代替所有方法名】
6 方法名(....参数值....)

常用方法 :

 1 import time
 2 time.strftime("%Y‐%m‐%d %H:%M:%S",time.localtime())
 3 %Y # 4位年
 4 %y # 2位年
 5 %m #
 6 %d #
 7 %H # 24小时制小时
 8 %I # 12小时制小时
 9 %M #
10 %S #
11 time.sleep(数字)
12 # 当前进程休眠 数字 秒
1 import calendar
2 calendar.isleap(年): 判断年是否是闰年,如果是返回True,否则返回False
1 import random
2 random.randint(数字1,数字2):生成 》=数字1,《=数字2的整数的一个随机数

数据的读取

1 import pymysql
2 ###创建连接 host:数据库地址,user:用户,passwd:密码,db:数据库名
3 conn=pymysql.connect(host='localhost',user='root',passwd='',db='test1')
4 cursor=conn.cursor()
 1 #通过游标执行sql语句,返回影响条数
 2 ###增加一条
 3 cursor.execute('update student set s_name=\'qingcai\' where s_id=1')
 4 conn.commit()
 5 
 6 ###返回查询结果 条数
 7 aa=cursor.execute('select * from student')
 8 print(aa)
 9 ###返回查询结果一条
10 bb=cursor.fetchone()
11 print(bb)
12 ###返回查询结果多条
13 cc=cursor.fetchmany(2)
14 print(cc)
15 ###返回查询所有条
16 dd=cursor.fetchall()
17 print(dd)
18 
19 ###关闭游标
20 cursor.close()
21 ###关闭连接
22 conn.close()

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM