类(面向对象、增删改查、继承、多态、封装、反射)

类的增删改查可以操作类里面的函数、数据属性,实例。

1.函数与类的区别
函数实现功能的模块化
类是实现功能和数据的模块化
——init——类的构造:初始化类,实例化的时候自动执行
2.类用法

4.什么是类,
类是把一类事物的相同的特征和同一动作整合到一类,类是抽象的
5.什么是对象
对象就是基于类创建的一种事物,也是特征和动作整合到一起的
6.面向对象
就是__init__独特构造
7.类和对象的关系
对象都是类产生的。
8.实例化:有类产生的过程叫实例化
9.新式类类名后面括号里加object
10.什么是属性
类的对象里的每个事物都有属性,属性包括数据属性(变量),函数属性(面向对象的方法),实例只有数据属性,实例能访问类属性
11.查看类的属性:
dir(类名)
12.函数面向对象

13.类的面向对象

14.类的数据增删改查

print(school.conent)#查看
school.conent=‘英国‘#改
print(school.conent)
school.dang=‘中国‘ #增加
print(school.dang)
print(q.dang)
del school.dang #删除
print(school.dang)

15.类的函数属性的增删改

def eat_food(self,name): #增加函数
print(‘%s正在招生‘%self.name,name)
school.ss=eat_food
print(q.ss(‘cui‘))
def strip(slef): #改函数
print(‘%s学校的运动很键康‘%slef.name)
school.ss=strip
print(q.ss())
del strip #删除函数
print(q.ss())

16.类的实例的增删改

q.ade=12 #增加实例属性
print(q.ade)
q.ade=10 #修改
print(q.ade)
del q.ade #删除
print(q.ade)

17.静态属性
把函数属性变成数据属性

1.类方法@classmethod 函数名(cls) :可以访问函数属性和数据属性,不可以访问实例
2.静态方法@staticmethod 函数名():不能访问类的属性页不能访问函数属性
3.静态属性@property 函数名(self):既可以访问属性也可以访问类的

4.组合:类和类没有共同特点,只有关联用的组合

18.类的特点:继承、封装、多态
(1)继承:子类继承父类的所有属性,如果子类有的话就不会继承父类,分为单继承和多继承。
(2)什么时候永继承:当类与类之间有相同的功能,可以提取两个类共同的功能放上面做基类。
(3)继承的两种含义:第一种,继承积累的方法(减少代码重用)
            第二种,接口继承,声明子类兼容基类,,就是父类规定好了方法,子类必须继承父类的方法,要用import abc

(4)继承顺序:从子类往左向上层继承,到最后一层结束,从子类向右上层继续执行。python3:新式类,python经典类
(5)在子类中调用父类方法

19.多态:是指了对象如何通过共同的属性和动作操作和访问。

  python本身就是多态,多态就是运行是的绑定状态

  多态是怎样来的?不同的方法调用相同的方法

20.封装:有两种
  1.类就是本身就是麻袋
  2.类中定制私有的,只能在类的内部使用,不能在外部使用

21.反射:指程序可以访问、检测和修改它本身状态或是一种行为的一种能力。

  • getattr 获取指定字符串名称的对象属性
  • setattr 为对象设置一个对象
  • hasattr 判断对象是否有对应的对象(字符串)
  • delattr 删除指定属性

原文地址:https://www.cnblogs.com/cui00/p/12381981.html

时间: 2024-11-09 02:37:22

类(面向对象、增删改查、继承、多态、封装、反射)的相关文章

DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO模式实际上是两个模式的组合,即Data Accessor (数据访问者)模式和 Active Domain Object(领域对象)模式.Data Accessor 模式实现了数据访问和业务逻辑的分离:Active Domain Object 模式实现了业务数据的对象化封装. 需要注意的是,DAO设计模式是Java EE中的设计模式,而非Ja

MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4059514.html 联系方式:[email protected] [正文] 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO模式实际上是两个模式的组合,即Data Accessor (数据

板邓:wordpress中wpdb类数据库增删改查操作

wordpress中wpdb可以轻松实现数据库的增删改查,wordpress开发者必须会用的类! 案例: 1.使用wpdb类插入自己创建的一个数据表(wp_person): global $wpdb; $data=array( 'denglu_id' => $_POST['denglu_id'], 'password' => $_POST['password'], 'user_name' => $_POST['user_name']); $wpdb->insert($wpdb-&g

Ado.net中简单的DBHelper类(增删改查)

private static string connString = "server=.;database=hotel;uid=aa;pwd=123";//最好从配置文件中取出 public static SqlConnection conn = new SqlConnection(connString); //公用的增删改方法 public static bool ZhengShanGai(string sql) { bool flag = false; SqlCommand com

【Python学习之旅】---多态(类的相关知识,面向对象三大特性:继承-多态-封装)

class Name: __a='你是猪' #封装变量a def __init__(self,name): self.name=name def get_name(self): print('我叫%s' %self.name) n1=Name('陈宇霞')print(Name.__dict__) #查看类属性字典print(n1._Name__a) #可以通过此种方式调用__a ,没有真正的封装 #执行结果: {'__module__': '__main__', '_Name__a': '你是猪

【Python学习之旅】---封装与反射(类的相关知识,面向对象三大特性:继承-多态-封装)

#第一层封装:定义类#第二层封装:区分内外,有些属性只能内部使用,外部不能 class Name: __a='你是猪' #封装变量a def __init__(self,name): self.name=name def get_name(self): print('我叫%s' %self.name) n1=Name('陈宇霞')print(Name.__dict__) #查看类属性字典print(n1._Name__a) #可以通过此种方式调用__a ,没有真正的封装 #真正的封装:区分内外,

php 操作sqlite类。增删改查,pdo链接

<p>直接代码:</p><p>注意:一定要写好数据库保存路径</p> <?php // sqlite分页类 class SqliteDB{ public function __construct(){ // 初始化数据库,并且连接数据库 数据库配置 $this->db = new PDO('sqlite:'.dirname(__FILE__).'\log.db'); $this->table_name=$tab; $this->tab

抽取JDBC工具类并增删改查

抽取工具类: package demo; /* * 工具类 */ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class JDBCUtils1 { public static Connection getConnection() { Connection conn = null; try

关于后盾网yii框架的学习小结(10)--使用AR类的增删改查

创建新的数据库的语句 <?php class CategoryController extends Controller{ public function filters(){ return array( 'accessControl', ); } public function accessRules(){ return array( //更加具体化 // array( // 'allow', // 'actions'=>array('del','add'), // 'users' =>

c++实现字符串类的增删改查

#include<iostream> using namespace std; class mystring{ public: mystring():mystr(NULL){} //构造函数 mystring(char*str){ if(mystr!=NULL) { mystr=NULL; } mystr=new char[sizeof(str)+1]; strcpy(mystr, str); } //拷贝构造 mystring(mystring& myst){ if(mystr!=N