房贷计算器,袁咏仪张智霖,bgm-康盛科技,代码分享,定期活动

admin 2019-05-16 阅读:125

1.面向目标(Object Oriented,OO)概念

面向目标,是咱们编程的一种思想。

前期的计算机编程是根据面向进程的办法,例如完成算术运算1+1+2 = 4,经过规划一个算法就能够处理其时的问题。跟着计算机技术的不断提高,计算机被用于处理越来越杂乱的问题。经过面向目标的办法,将实际国际的事物笼统成目标,实际国际中的联系笼统成类、承继。经过面向目标的办法,更利于用人了解的办法,对杂乱体系进行剖析、规划与编程。一起也提高了体系的可维护性,可扩展性,可重用性。

(便是使编程的思想,更挨近与人的思想和认知)

面向目标编程的要害,便是类的界说。

类是对实际生活中一类具有一起特征的事物的笼统。

2.类的界说


根本方式:
class ClassName(object):
Statement

1.class界说类的要害字
2.ClassName类名,类名的每个单词的首字母大写(驼峰规矩)。
3.object是父类名,object是全部类的基类。在python3中假如承继类是基类能够省掉不写。
'''
要点:学会界说类,了解特点和办法,类的初始化和实例化。
界说类时,这种办法能够使类目标实例按某种特定的方式出产出来。
'''
#类办法:
'''
后边的参数中第一个参数咱们约好俗成的为self参数名,
self代表的是在类实例化后这个实例目标自身。
初始化函数除了有self这个参数表明实例目标自身之外,
其他的参数的界说也遵从函数的必备参数和默许参数相同的准则,
必备参数便是在实例化是必定要传入的参数,
默许参数便是在界说时能够给这个参数一个初始值。没有函数名的函数
'''


3.类的实例化


 根本方式:实例目标名 = 类名(参数)
在实例化的进程中,self代表的便是这个实例目标自己。
实例化时会把类名后边接的参数传进去赋值给实例,
这样传进去的参数就成为了这个实例目标的特点。
实例化的进程遵从函数调用的准则。
在实例化时也有必要个数和次序与界说时相同(运用要害字参数能够改动传参的次序)。
当初始化函数界说时运用了默许参数时,在实例化时默许参数能够不传参这时
这个实例目标就会运用默许的特点,假如传了参数进去则会改动这参数值,
使实例化目标的特点就为你传进来的这个参数。
isinstance(实例名,类名)
判别一个实例是不是这个类的实例。


#类 类是对实际生活中,具有一起特征的事物的笼统。
class Animal(object):
pass
# object, 基类。 任何类都需求承继object
# 类 (模子)
class Animal: #python3 承继object,可写可不写
pass
dog = Animal() #生成一个实例 dog
cat = Animal() #生成实例cat
##结构办法 __init__() , self 参数
class Animal:
def __init__(self): # 结构办法,实例化目标时,有必要要调用__init__
print('正在实例化一个类')
def test(self):
print('aaa')
#当咱们没有写__init__() ,默许调用咱们父类__init__
class Animal:
def test(self):
print('aaa')
###self, 实例化目标(自身)
#self 能够替换成其他参数名。可是最好别改
class TestSelf: #办法 :testSelf 办法的首字母小写 类: TestSelf 类的首字母一般大写 驼峰命名规矩
def __init__(self): #在初始化的时分,默许往结构办法,传入一个值
print('正在实例化')
def test(self):
print('bbb')
def test2():
print('ccc')

4.类和实例的特点


 类特点
.类特点是能够直接经过“类名.特点名”来拜访和修正。
.类特点是这个类的一切实例目标所共有的特点,
恣意一个实例目标都能够拜访并修正这个特点(私有躲藏在外)。
.对类特点的修正,遵从根本数据类型的特性:列表能够直接修正,字符串不能够,
所以当类特点是一个列表时,经过恣意一个实例目标对其进行修正。
但字符串类型的类特点不能经过实例目标对其进行修正。
当实例对不可变目标进行修正之后,会查找实例的类特点,不会查找类的特点,一起类的特点不会边

实例特点
.在特点前面加了self标识的特点为实例的特点。
.在界说的时分用的self加特点姓名的方式,在检查实例的特点时
便是经过实例的称号+‘.’+特点名来拜访实例特点。


 一些阐明:
.一般,办法第一个参数被命名为self,,这仅仅是一个约好,
self没有特别意义,程序员遵从这个约好。
.检查类中的特点和实例特点能够调用__dict__办法回来特点组成的字典。
.Python中特点的获取是依照从下到上的次序来查找特点
.Python中的类和实例是两个彻底独立的目标
.Python中的特点设置是针对目标自身进行的


####特点, 特点本质上就一个变量
'''
1.实例化特点
2.类特点 (共有特点)
'''
# 1.实例化特点 , self.name
class Animal:
def __init__(self,name,food): #自己独有的,就放到实例化里边
print('正在实例化')
self.name = name # 实例化特点:每个实例或许不同,可是都有
self.food = food
def get_name(self):
print(self.name)
#2.类特点 (共有特点)
class Animal:
eye = 2
leg = 4 #共有的
def __init__(self,name,food):
print('正在实例化')
self.name = name
self.food = food
def get_name(self):
print(self.name)

5.类的私有特点和办法

 在Python中,经过单下划线”_”来完成模块级其他私有化,一般约好以单下划线”_”最初的变量、函数为模块私有的,也便是说”from moduleName import *”将不会引进以单下划线”_”最初的变量、函数
关于Python中的类特点,能够经过双下划线”__”来完成必定程度的私有化。
_”和” __”的运用 更多的是一种标准/约好,不没有真实到达约束的意图:
“_”:以单下划线最初只能答应其自身与子类进行拜访,(起到一个维护的效果)
“__”:双下划线的表明的是私有类型的变量。这类特点在运行时特点名会加上单下划线和类名。
“__foo__”:以双下划线最初和结束的(__foo__)代表python里特别办法专用的标识,如 __init__()


'''
在Python中,经过单下划线”_”来完成模块级其他私有化,
一般约好以单下划线”_”最初的变量、函数为模块私有的,
也便是说”from moduleName import *”
将不会引进以单下划线”_”最初的变量、函数
'''
import random #全部会导入

from random import* #_Set 不会倒入
class Animal:
_eye = 2
__leg = 4 #共有的
def __init__(self,name,food):
print('正在实例化')
self.name = name
self.food = food
def get_name(self):
print(self.name)
#_”和” __”的运用 更多的是一种标准/约好,并没有真实到达约束的意图:
dog._eye = 3
#dog._Animal__leg ##__ 默许加一个类名,用来正告
# “__foo__”:以双下划线最初和结束的(__foo__)
#代表python里特别办法专用的标识,如 __init__()

6.数据封装

在类里边数据特点和行为函数的方式封装起来,
拜访时直接调用,不需知道类里边详细的完成办法。 比方,list.append

7.承继

用法:
.在界说类时,能够从已有的类承继,
被承继的类称为基类(父类),新界说的类称为派生类(子类)。

.在类中找不到调用的特点时就查找基类,
假如基类是从其他类派生而来,这个规矩会递归的运用上去。
反过来不可。

.假如派生类中的特点与基类特点重名,那么派生类的特点会覆盖掉基类的特点。
包含初始化函数。

.派生类在初始化函数中需求承继和修正初始化进程,
运用’类名+__init__(arg)’来完成承继和私有特性,也能够运用super()函数。

issubclass(类名1,类名2)
判别类1是否承继了类2

效果:
面向目标的编程带来的首要优点之一是代码的重用,完成这种重用的办法之一是经过承继机制。
承继彻底能够了解成类之间的类型和子类型联系。

子类在重写父类办法之后,假如要承继父类办法中的功用,要先调用父类的办法 class.fun(self)


8.多态

当派生类重写了基类的办法时就完成了多态性。(子类重写父类办法)

## 面向目标 三个特征: 封装 ,承继 多态
# 封装
class Animal:
eye = 2
leg = 4 #共有的
def __init__(self,name,food):
print('正在实例化')
self.name = name
self.food = food
def get_name(self):
print(self.name)
def get_food(self):
print(self.food)
# 承继
#面向目标的编程带来的首要优点之一是代码的重用
class People(Animal):
leg = 2
def __init__(self,name,food,sex):
self.name = name
self.food = food
self.sex = sex

def get_sex(self):
print(self.sex)
def speak(self):
print('asdsdgfsagg')
def eat(self):
print('果子')

#多态, (子类重写父类办法) ,承继。 (同一个办法,有不同表方式)
class Chinse(People):
def speak(self):
print('你好')
def eat(self):
print('米饭')
class America(People):
def speak(self):
print('hello')
def eat(self):
print('面包')

class Thai(People):
def speak(self):
print('萨瓦迪卡')
def eat(self):
print('香蕉')
xiaoMing = Chinse('小明','米饭','男')
jeck = America('jeck','面包','男')
lala = Thai('lala','香蕉','不知道')
'''
总结:
1.类的界说
2.__init__() 结构办法
3.self 参数。 实例目标自身
4.类特点 (共有特点), 实例化特点
5._ __ python 类的私有化。
6. 面向目标 三大特征: 封装 承继 多态
'''

“我自己是一名从事了多年开发的Python老程序员,辞去职务现在在做自己的Python私家定制课程,今年年初我花了一个月收拾了一份最适合2019年学习的Python学习干货,从最根底的到各种结构都有收拾,送给每一位喜爱Python小伙伴,想要获取的能够转发文章并重视我的头条号。在后台私信我:01,即可免费获取。"