当前位置: 首页 > news >正文

《Python 编程从入门到实践》———— 创建和使用类

创建类

 面向对象技术简介

  1. 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  2. 方法:类中定义的函数。
  3. 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  4. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
  5. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  6. 局部变量:定义在方法中的变量,只作用于当前实例的类。
  7. 实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
  8. 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。
  9. 实例化:创建一个类的实例,类的具体对象。
  10. 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

 和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制。Python 中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。对象可以包含任意数量和类型的数据。


 根据约定,在 Python 中,首字母大写的名称指的是类。这个类定义中的括号是空的,因为我们要从空白创建这个类。类中的函数称为方法; 你前面学到的有关函数的一切都适用于方法,就目前而言,唯一重要的差别是调用方法的方式。方法 init() 是一个特殊的方法,每当你根据 person 类创建新实例时,Python 都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免 Python 默认方法与普通方法发生名称冲突。


 在 init() 方法的定义中,形参 self 必不可少,还必须位于其他形参的前面。为何必须在方法定义中包含形参self呢?因为 Python 调用这个__init__() 方法来创建 first_person 实例时,将自动传入实参 self。每个与类相关联的方法调用都自动传递实参 self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。我们创建 first_person 实例时,Python 将调用 person类的方法__init__()。我们将通过实参向 person 传递名字、年龄和性别;self 会自动传递,因此我们不需要传递它。每当我们根据 person 类创建实例时,都只需给最后三个形参(name、age 和 sex)提供值。


 定义的变量都有前缀 self。以 self 为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。self.name = name 获取存储在形参 name 中的值,并将其存储到变量 name 中,然后该变量被关联到当前创建的实例。像这样可通过实例访问的变量称为属性




 下面是一个创建好的实例。

# 输入
class person(object): # Creat person class including name, age, sexdef __init__(self,name,age,sex):   # input related info self.name = nameself.age = ageself.sex = sexdef get_age(self):              # get person ageprint(self.name.title() + "'s age is " + " " + str(self.age))def get_sex(self):              # get person sexprint(self.name.title() + "'s sex is " + " " + self.sex)first_person = person('tom','80','male')
second_persion = person('jerry','82','femal')
first_person.get_age()
second_person.get_sex()# 输出
Tom's age is  80
Jerry's sex is  femal

1. 访问属性
 要访问实例的属性,可使用句点表示法。句点表示法在 Python 中很常用,这种语法演示了Python如何获悉属性的值。在这里,Python 先找到实例 first_person,再查找与这个实例相关联的属性name。在 person 类中引用这个属性时,使用的是self.name。
2. 调用方法
 根据 person 类创建实例后,就可以使用句点表示法来调用 person 类中定义的任何方法。要调用方法,可指定实例的名称(这里是 first_person)和要调用的方法,并用句点分隔它们。遇到代码 first_person.get_age() 时,Python 在类 person 中查找方法 get_age() 并运行其代码。这种语法很有用。如果给属性和方法指定了合适的描述性名称,如name、age、sit()和roll_over(),即便是从未见过的代码块,我们也能够轻松地推断出它是做什么的。
3. 创建多个实例
 可按需求根据类创建任意数量的实例。就算我们给第二个人指定同样的名字和年龄,Python依然会根据 person 类创建另一个实例。你可按需求根据一个类创建任意数量的实例,条件是将每个实例都存储在不同的变量中,或占用列表或字典的不同位置。



















使用类

 你可以使用类来模拟现实世界中的很多情景。类编写好后,你的大部分时间都将花在使用根据类创建的实例上。你需要执行的一个重要任务是修改实例的属性。你可以直接修改实例的属性,也可以编写方法以特定的方式进行修改。类中的每个属性都必须有初始值,哪怕这个值是0或空字符串。在有些情况下,如设置默认值时,在方法__init__() 内指定这种初始值是可行的;如果你对某个属性这样做了,就无需包含为它提供初始值的形参。

# 输入
class Car(object):def __init__(self,band,model,year):self.band = bandself.model = modelself.year = yearself.mile = 300def get_info(self):print("My car is " + self.band.title() + " "+ self.model + " and bought in " + str(self.year))def report_odometer(self):print("The mile drving is " + str(self.mile))my_car = Car("BWM",'I8',2020)
my_car.report_odometer()# 输出
The mile drving is 300

 在实际的过程中,我们的汽车行驶里程是时刻变化的,所以我们在执行程序的过程中,存在修改属性值的情况。这里介绍一下如果修改属性值。
  1. 直接修改属性的值
  要修改属性的值,最简单的方式是通过实例直接访问它。有时候需要像这样直接访问属性,但其他时候需要编写对属性进行更新的方法。

# 输入
class Car(object):def __init__(self,band,model,year):self.band = bandself.model = modelself.year = yearself.odometer = 0def getinfo(self):print("my car is " + self.band + " " + self.model + " and is bought in " + str(self.year))def reportinfo(self):print("The odometer is " + str(self.odometer))my_car = Car("BWM","I8",2021)
my_car.getinfo()
my_car.odometer = 300
my_car.reportinfo()# 输出
my car is BWM I8 and is bought in 2021
The odometer is 300

  2. 通过方法修改属性的值
  如果有替你更新属性的方法,将大有裨益。这样,你就无需直接访问属性,而可将值传递给一个方法,由它在内部进行更新。对Car类所做的唯一修改是在处添加了方法update_odometer()。这个方法接受一个里程值,并将其存储到 self.odometer_reading 中。我们调用了update_odometer(),并向它提供了实参。

# 输入
class Car(object):def __init__(self,band,model,year):self.band = bandself.model = modelself.year = yeardef getinfo(self):print("my car is " + self.band + " " + self.model + "and is bought in " + str(self.year))def reportmileinfo(self,odometer):self.odometer = odometerprint("The odometer is " + str(self.odometer))my_car = Car("BWM","I8",2021)
my_car.reportmileinfo(230)# 输出
The odometer is 230

  3. 通过方法对属性的值进行递增
  有时候需要将属性值递增特定的量,而不是将其设置为全新的值。假设我们购买了一辆二手车,且从购买到登记期间增加了 100 英里的里程,下面的方法让我们能够传递这个增量,并相应地增加里程表读数。你可以使用类似于上面的方法来控制用户修改属性值(如里程表读数)的方式,但能够访问程序的人都可以通过直接访问属性来将里程表修改为任何值。要确保安全,除了进行类似于前面的基本检查外,还需特别注意细节。

# 输入
class Car(object):def __init__(self,band,model,year):self.band = bandself.model = modelself.year = yearself.odometer = 100def getinfo(self):print("my car is " + self.band + " " + self.model + "and is bought in " + str(self.year))def reportmileinfo(self,odometer):self.odometer += odometerprint("The odometer is " + str(self.odometer))my_car = Car("BWM","I8",2021)
my_car.reportmileinfo(230)# 输出
The odometer is 330

私有性
  1. 类的私有属性
  __private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。

# 输入
class Car(object):__username = "Youth"def __init__(self,band):self.band = banddef printband(self):print(self.band)mycar = Car("Adui")
print(mycar.band)
print(mycar.__username)# 输出
Adui
Traceback (most recent call last):File "C:/script/Class2.py", line 12, in <module>print(mycar.__username)
AttributeError: 'Car' object has no attribute '__username'

  2. 类的私有方法
  __private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类的外部调用。self.__private_methods。

# 输入
class Car(object):def __init__(self,band):self.band = banddef printband(self):print(self.band)def __printage(self):print(str(24))mycar = Car("Adui")
mycar.printband()
mycar.__printage()# 输出
Adui
Traceback (most recent call last):File "C:/script/Class2.py", line 14, in <module>mycar.__printage()
AttributeError: 'Car' object has no attribute '__printage'
类的专有方法
NameDescription
__init__ 构造函数,在生成对象时调用
__del__析构函数,释放对象时使用
__repr__ 打印,转换
__setitem__ 按照索引赋值
__getitem__按照索引获取值
__len__获得长度
__cmp__比较运算
__call__函数调用
__add__加运算
__sub__减运算
__mul__乘运算
__truediv__除运算
__mod__求余运算
__pow__乘方

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35359.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

C语言中的整型提升

C语言中的整型提升 提到整型提升,可能刚学c语言的小伙伴们很头疼这个知识点吧,下面我就我的理解简单分析一下整型提升是怎么回事. 首先还是介绍一下整型提升的概念: ​ c的整型算术运算总是至少以缺省整型类型的精度来进行的. 为了获得这个精度,表达式中的字符和短整型操作数在…...

Dubbo(一)项目架构演变过程

Dubbo&#xff08;一&#xff09;项目架构演变过程架构演变过程单体架构垂直架构SOA&#xff08;分布式架构&#xff09;微服务架构架构演变过程 dubbo是一款高性能的java rpn框架。 随着互联网的发展&#xff0c;用户群体逐渐壮大&#xff0c;网站的流量成倍增长&#xff0c;…...

Nuxt 项目完结总结

1、状态保存&#xff0c;即localstorage。 这里选择了 nuxt-vuex-localstorage&#xff08;^1.3.0&#xff09; 来做store的持久化保存。 modules: [nuxtjs/style-resources,nuxtjs/axios,[nuxt-vuex-localstorage,{localStorage: [localStorage]}] ] 2、登录token保存&…...

浅入浅出实现一个异步求和函数

简化&#xff1a;两数之和 我们先来简单的实现一个异步两数之和函数 function sumT(a, b) {return await new Promise((resolve, reject) > {asyncAdd(a, b, (err, res) > {if(!err) {resolve(res)}reject(err)})}) }// 测试 const test await sumT(1, 2) console.log…...

入门图形学:屏幕波爆特效

最近bilibili看了黑神话悟空的UE5演示视频&#xff0c;感觉是真牛逼&#xff0c;地址&#xff1a;黑神花悟空UE5实机演示视频 遥想我也算是国内第一批用ue4的开发者了&#xff0c;15年开始用ue4.7源码版&#xff0c;做了一年多就又用回u3d了&#xff0c;哈哈&#xff0c;主要因…...

unity学习笔记(一)

unity基础简介&#xff08;一&#xff09; unity是如何跨平台的&#xff08;附c和c#编译过程&#xff09; 前言 游戏引擎为了兼顾易用性和性能&#xff0c;往往使用一种高效率语言编写核心&#xff0c;使用另一种高级语言作为脚本语言&#xff0c;大部分游戏引擎的底层核心由…...

浮动布局,定位布局,伸缩盒布局

布局 默认文档流 1.元素显示的顺序和代码的顺序是一致的 2.块级元素独占一行空间&#xff0c;默认宽度为父元素的100%&#xff0c;高度由内容或者子元素决定 3.行内元素共享一行空间&#xff0c;默认宽高都由内容决定 浮动布局 float&#xff08;如果一个元…...

Python大数据分析学习基础篇(3)——数据结构

一、函数部分 1、闭包 所谓闭包其实跟回调函数有有相通之处。闭包可以延长作用时间和作用域。 def say(word):def name(name):print(word,name)return name hi say(你好) hi("小明") bye say("再见") bye("小明 ") 运行结果&#xff1a; …...

SQL 之共同使用ip用户检测问题【自关联问题】-HQL面试题48【拼多多面试题】

目录 0 问题描述 1 数据分析 2 小结 0 问题描述 1 数据分析 (1)数据准备 create table log (uid string,ip string,time string )row format delimited fields terminated by \t;insert into log values (a, 124, 2019-08-07 12:0:0), (a, 124, 2019-08-07 13:0:0), (b, 1…...

thinkphp6 通过命令行快速生成多应用模块报 【Command “build“ is not defined.】错误的解决办法

在项目下执行如下命令 php think build admin报如下错误 [rootlocalhost orange]# php think build admin[InvalidArgumentException] Command "build" is not defined. 解决办法&#xff1a; 1.查看官方文档&#xff1a; https://www.kancloud.cn/manual…...

线程的安全性 - 并发基础篇

简介 当多个线程访问某个类时&#xff0c;这个类始终都能表现出正确的行为&#xff0c;那么就说这个类是线程安全的。 目录 这次分三步走&#xff1a;关于相关知识点&#xff0c;放在文末的脑图里了&#xff0c;大家想看结论的&#xff0c;可直接下拉观看哦。 1.创建一个线…...

栈?队列?Java ArrayDeque常用首尾操作方法整理

对于用Java刷leetcode的同学一定很眼熟ArrayDeque这个数据结构&#xff0c;因为它既可以作为队列也可以作为栈&#xff0c;解题时使用频率很高。补充一嘴&#xff0c;Stack也能作为栈来用&#xff0c;但是作为存在设计缺陷的Vector类的子类&#xff0c;已经不推荐使用了。 Arr…...

开发程序流程

JavaWeb程序--> 将一个请求路径( 网络地址) 变成一条sql语句&#xff0c;发送给数据库进行查询&#xff1b; 会将获取的数据&#xff0c;通过页面的方式&#xff0c;展示给用户进行操作&#xff1b; Javaweb程序如何将一个路径变成一条sql语句&#xff1f;...

从入门到放弃:Markdown中的LaTeX使用教程

LaTeX CSDN不支持显示的语法我已用 标注显示 基本语法 展现形式 在正文中的LaTeX公式用$...$定义行内公式&#xff0c;$$...$$单独居中显示 希腊字母 显示命令显示命令α\alphaβ\betaγ\gammaδ\deltaε\epsilonζ\zetaη\etaθ\thetaι\iotaκ\kappaλ\lambdaμ\muν\…...

----- ElasticSearch -----

1.什么是RestFul 2.什么是全文检索 3.什么是Elastic Search 开源 Apache Lucen 工具包 java api特别多 solr 全文检索服务器 底层封装了lucene ElasticSearch 开源搜索引擎 java 4.ES中基本概念 1&#xff09;接近实时(NRT Near Real Time 2&#xff09;索引(index) 3&am…...

39.【Axure 10 】交元件(元件组)交互事件

鼠标相关交互事件 【高】单击时 元件(元件组)的是鼠标单击事件&#xff0c;可以实现鼠标单击的触发的交互事件。 【中】双击事件 元件(元件组)的是鼠标双击事件&#xff0c;作为触发条件。同时也是双击页面任何地方可触发。 【中】鼠标右击事件 元件(元件组)的鼠标右击是…...

PO / PO和 ERP的配置

一、前言 PO / PI 是SAP公司的一个中间件产品&#xff0c;用来辅助SAP系统和外围系统&#xff0c;( 当然外围系统也可以使用PO)。 PO可以完成一些数据内容转换,群发(一份数据发给多个异构系统),分发(数据区分特征发送给特定的系统)等功能. 二、ERP端 ERP和 PO的连接&#x…...

array_search() 在数组中搜索给定的值,如果成功则返回相应的键名

实例 在数组中搜索键值 "red"&#xff0c;并返回它的键名&#xff1a; <?php $aarray("a">"red","b">"green","c">"blue"); echo array_search("red",$a); ?>输出 a 如果…...

不断提升自己创造溢价的能力,附带学习经验

开头 互联网时代的到来&#xff0c;让我们获取知识变得更加简单&#xff0c;理论上讲只要你想学&#xff0c;便会有不尽的知识等你&#xff0c;只要方法得当&#xff0c;够努力&#xff0c;任何人都可以都有可能成为大牛。 自己在努力的基础上&#xff0c;还学习了一些高效的…...

从入门到精通!一个三非渣本的Android校招秋招之路,终局之战

前言: 本文收集整理了各大厂常见面试题N道&#xff0c;你想要的这里都有内容涵盖&#xff1a;Java 相关、Android 基础、Android Framework、三方源码、算法与数据结构、等技术栈&#xff0c;希望大家都能找到适合自己的公司&#xff0c;开开心心的撸代码。 实现方案 直接依…...

Flutter 自定义单选按钮

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMekK9tV-1629764513963)(https://ducafecat.tech/2021/08/24/translation/exploring-custom-radio-button-in-flutter/2021-08-24-07-49-36.png)] 原文 https://medium.com/flutterdevs/exploring-cu…...

Access与Trunk

Access与Trunk的区别&#xff1a; Access模式:可以允许单个VLAN通过&#xff0c;可以用于交换机的间连接也可以用于连接用户计算机。通过Access接口不打标签。 Sys &#xff08;进入配置模式&#xff09; Interface GigabitEthernet 0/0/1 &#xff08;进入端口&#x…...

jQuery简单折线图插件

下载地址jQuery简单的折线图插件&#xff0c;基于百度的echarts.js插件实现的曲线图demo&#xff0c;很简单就几行代码。 dd:...

Flutter面试常见开发问题

本文主要介绍Flutter面试常见开发问题 Flutter 使用了一种全新的方法&#xff0c;您可以使用 widgets代替 Views 。Android 中的 View 主要是布局的一个元素&#xff0c;但在 Flutter 中&#xff0c;Widget 几乎就是一切。从按钮到布局结构的一切都是小部件。这里的优势在于可定…...

LeetCode 736. Parse Lisp Expression

给出类似于lisp的表达式&#xff08;前序表达式&#xff09;&#xff0c;新加入了let赋值语句 注意&#xff1a;把每一句子表达式都抽象成了Exp对象&#xff0c;一个父exp包含了1个或者多个子Exp&#xff0c;从后向前遍历压栈&#xff0c;到最后统一出栈计算&#xff0c;妙啊&…...

Python numpy.unpackbits函数方法的使用

NumPy&#xff08;Numerical Python的缩写&#xff09;是一个开源的Python科学计算库。使用NumPy&#xff0c;就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数&#xff0c;涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中unpackbits方法…...

什么是状态模式

...

Linux的概述

Linux的概述&#xff1a; Unix Unix是一个强大的多用户、多任务操作系统 于1969年在AT&T的贝尔实验室开发 UNIX的商标权由国际开放标准组织&#xff08;The Open Group&#xff09;所拥有 UNIX操作系统是商业版&#xff0c;需要收费&#xff0c;价格比Microsoft Windows正…...

6_游戏框架搭建

游戏框架搭建 目标 —— 使用 面相对象 设计 飞机大战游戏类 目标 明确主程序职责实现主程序类准备游戏精灵组 01. 明确主程序职责 回顾 快速入门案例&#xff0c;一个游戏主程序的 职责 可以分为两个部分&#xff1a; 游戏初始化游戏循环 根据明确的职责&#xff0c;设计…...

DDD领域驱动设计学习笔记

...

Python 安装pandas模块

pandas Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具&#xff0c;该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型&#xff0c;提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和…...

《模拟电子技术》半导体原理部分笔记

《模拟电子技术》笔记绪论第一章 常用半导体器件第二章 基本放大电路绪论 有的人把三极管的出现作为电子技术工业革命的开始标志学习架构&#xff1a;半导体器件&#xff08;二极管、三极管、场效应晶体管&#xff09;、基于上述管的放大电路、集成运算放大器、放大电路的频率…...

毕业设计-基于机器视觉的车型识别系统

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…...

Unity3D实现场景跳转方法

一、搭建一个场景&#xff0c;创建Button按钮&#xff0c;在其Inspector版面创建脚本ChangeScene 二、编写ChangeScene脚本&#xff0c;实现场景跳转功能 三、选择菜单栏的File->Build Settings添加场景...

Unity创建超写实三维场景的一般步骤

使用Unity创建三维场景最容易想到的是手动在地形上刷草、刷树等&#xff0c;但是这种方法不仅工作量大&#xff0c;但不真实。最近学习了Gaia插件&#xff0c;发现Gaia用程序自动生成的&#xff0c;感觉这种思想太妙了&#xff0c;World Creator也采用了类似的方法&#xff0c;…...

Unity3D项目之游戏场景小地图制作

Unity3D项目之游戏场景小地图制作 创建一个场景资源&#xff0c;可在asset store资源商店下载&#xff0c;选择心仪场景。 链接:https://assetstore.unity.com/?localezh-CN 添加一个对象GameObject&#xff0c;命名为player,子物体包括&#xff1a;主摄像机&#xff0c;角色…...

QT3D场景快速绘制入门学习

在QT中实现3D绘制的方式&#xff1a; 1) 使用QT OpenGL模块&#xff08;QOpenGLWidget等&#xff09; 2) 使用QT 3D C类&#xff08;QEntity等&#xff09; 3) 使用QT 3D QML类&#xff08;Entity等&#xff09; QT3D场景提供了一种快速设置3D场景的一种方式&#xff…...

Jetson的mavros使用offboard模式,终端按键控制无人机飞行

基于Promethues根据wiki配置好之后可以实现使用终端控制&#xff0c;起飞&#xff1b;降落&#xff1b;前后左右飞行&#xff1b;上升下降左转右转&#xff1b; 开始我基于仿真测试实机不成功&#xff0c;是因为某个运行节点没有打开&#xff0c;仔细看gazebo.launch文件里仿真…...

ue4和Airsim仿真无人机,键盘控制无人机运动

代码 #键盘测试 import keyboard import airsimclient airsim.MultirotorClient() client.confirmConnection()def abc(x):w keyboard.KeyboardEvent(down, 28, w)s keyboard.KeyboardEvent(down, 28, s)a keyboard.KeyboardEvent(down, 28, a)d keyboard.KeyboardEvent(…...

Unity工具 - 工具聚合页(UEWindow)

随着项目工程的推进&#xff0c;开发者们会根据工作内容的需要在Unity内开发众多的工具。随着工具的增多&#xff0c;Unity 的Menu菜单也会逐渐臃肿&#xff0c;过于分散&#xff0c;工具代码也难以查找。在此问题的基础上&#xff0c;开发了工具聚合页(UEWindow) 这一功能来管…...

无人机相关知识解读

目录 1.什么是云台&#xff1f; 2.云台的工作原理&#xff1f; 3.无人机吊舱是什么&#xff1f; 4.什么是无人机&#xff1f; 5. 无人机都有哪些&#xff1f; 6.什么是多旋翼无人机&#xff1f; 7.什么是直升机无人机&#xff1f; 8.什么是固定翼无人机&#xff1f; 9…...

客户关系管理(增删查改)

完整项目代码: 第一次使用mvc设计模式开发项目&#xff0c;是一个功能简单的项目&#xff0c;业务层service的功能也很少。 需要用到的jar包&#xff1a; 直接上代码 链接&#xff1a;https://pan.baidu.com/s/1cNCUvQBWY_NGiJT4FRX2qw 提取码&#xff1a;kak7 CustomerServ…...

[附源码]计算机毕业设计基于SpringBoot的小说阅读系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…...

七、创业谈话记录

曾在创业公司工作&#xff0c;亲身参与公司的各个方面活动&#xff0c;习惯做笔记&#xff0c;将记录和体会整理成的杂记&#xff0c;没有进行严格分类&#xff1b; 往期文章&#xff1a; 简析创业 创业知识域 一、在创业公司的一些经历思考、讨论、常见问题以及解决 — 创业…...

客户资料用得好,客户跑不了!

在现代企业管理中&#xff0c;客户资料管理过程仍存在诸多问题&#xff1a; 1.早期的客户资料登记不规范&#xff0c;导致信息很杂乱。客户资料的分类不够科学&#xff0c;导致很多该跟进的客户跟进不及时。 2.记录的客户资料过于分散&#xff0c;信息不够全面&#xff0c;想…...

DNS PTR记录

域名是为了方便记忆而专门建立的一套地址转换系统&#xff0c;要访问一台互联网上的服务器&#xff0c;最终还必须通过IP地址来实现&#xff0c;域名解析就是将域名重新转换为IP地址的 过程。这一过程通过域名解析系统DNS来完成。 接下来我们先来了解一下什么是IP反向解析。我…...

CRM助力客户开发

很多销售新人经验不足导致在客户开发上“心有余而力不足”&#xff0c;除了销售前辈传授的销售方法和技巧以外&#xff0c;销售新人要善于借助CRM系统来助力客户的开发。 前言 从事销售行业的工作人员&#xff0c;在开发客户方面都有一套专属自己的销售模板&#xff0c;且随着…...

SSH企业案例_CRM客户管理系统(五):CRM权限拦截器SSH纯注解整合

SSH企业案例_CRM客户管理系统&#xff08;五&#xff09;&#xff1a;CRM权限拦截器&SSH纯注解整合 38/100 发布文章 oZuoShen123 未选择文件 文章目录1、CRM综合练习&#xff1a;客户拜访记录客户拜访记录管理客户拜访记录的准备工作客户拜访记录的列表显示客户拜访记录的…...

AEAI CRM V1.6.0 升级说明,开源客户关系管理系统

1 升级说明 AEAI CRM v1.6.0版是AEAI CRM v1.5.2版客户关系管理系统的升级版本&#xff0c;本次版本是基于AEAI DP v3.8.0_20170228进行打包部署的&#xff0c;升级内容主要是针对数通畅联销售对客户拜访任务管理进行的一次全面的升级&#xff0c;整体的业务流程发生了重大变化…...

与客户联系交流注意事项

1.1、提前与客户预约 如果我们需要实地拜访客户,则需要提前与客户预约(具体需要详细说明到达客户地址的时间,联系客户进行拜访的时间(比如:XXX您好,我是XXX公司的XXX,我明天到达XXX城市,明早9点到您们公司门口,您是否方便)。 1.2、介绍自己 首先需要告诉客户你的信息,…...