1、概念
①OOP:Object Oriented Programming
②面向对象:只关心哪个对象完成这个功能,它关注的是完成功能的结果,以结果为导向 python、Java、js、c++...
③面向过程&面向对象
④面向对象三大特征:封装、继承、多态
java强类型
python弱类型,变量没有类型,数据有类型,变量的类型随数据而定
2、语法
(1)类
①概念:python中,通过类描述现实世界的事物(对象)---思想。描述的方式:外在特征+内在功能(重点)
实质上,类其实用来创建对象
②具体语法
class 类名:
#外在特征
#内在功能
def 方法名(self,[形参]):
方法体
a.内在功能:方法
b.类通过关键字class声明
c.类名,就是一个标识符,建议使用大驼峰(ClassName)----首字母是大写
d.外在特征和内在功能写到类的缩进中
e.类用于创建对象,直接运行没有任何结果
class Phone:
def call(self):
print('call')
iphonex = Phone()
print(iphonex)
(2)对象
①概念:指的是 实实在在的事物
②具体:由类创建出来的就是对象,创建对象的过程被称作实例化(对象的实例化)
③创建对象的语法
变量 = 类名()
a.通过类名()就能创建对象
b.通常将创建好的对象赋值给一个变量
c.使用创建对象 通过 变量 使用
d.每次创建的对象都是新对象(占用空间不一样),使用其中一个对象不影响另一个
查看对象 id: print(id(iphonex))
④类与对象关系:
(3)使用对象
①对象上有功能,特征----->方法,属性
②使用对象其实就是使用对象上的方法和属性
③使用对象上的属性
a.大前提:如果没有对象就创建一个
b.使用对象上的属性
说明:属性可以在类中添加 或者 在创建对象后添加
这里讲的是:创建对象后添加
④添加属性语法(保存数据):对象.属性名 = 值
属性的访问:对象.属性名
属性的修改:对象.属性名 = 新值
删除属性:del 对象.属性名
判断属性是否存在:bool = hasattr(对象,属性名)
iphonex.color = '玫瑰金'
⑤对象上功能(方法)的使用
对象.方法名()
备注:a.一个方法可以被多次调用
b.对象可以调用上面的所有的可以使用的方法
c.如果方法有返回值,使用变量接受 变量=对象.方法名()
3、初始化 __init__方法
(1)概念
①在我们的类中,可以定义一个固定名字的方法 __init__(self,[形式参数])
②特点:创建对象的时候,自动调用实行
创建对象 变量=类名()
③作用:绑定一些初始属性(默认属性)
(2)语法
class 类名:
def __init__(self,[形参]):
#绑定初始属性
self.属性名1 = 值1
self.属性名2 = 值2
#创建对象
变量 = 类名([实参])
[实参]:其实就是传递给__init__方法的
4、__str__方法
(1)由来
通过print(对象)可以查看一个对象的信息,缺点:英文并且没有什么实质价值
<__main__.Student object at 0x00000224356161C0>
如果通过print(对象)可以用自己的语言 自定义对象消息,就非常nice
(2)概念
a.可以在类中 定义一个固定名字的 方法__str__(self)
b.特点:通过print(对象) 打印对象的时候 自动调用__str__()方法
该方法必须返回(return)一个字符串
c.作用:用于自定义对象信息
Python3 基础语法 | 菜鸟教程
快捷键 ctrl+alt+l 格式化
#-*- coding:utf-8 -*-
class Jisuan:
def __init__(self,num1,num2):
self.num1 = num1
self.num2 = num2
def add(self):
return self.num1+self.num2
def sub(self):
return self.num1-self.num2
def mul(self):
return self.num1*self.num2
def div(self):
return self.num1/self.num2
jisuan = Jisuan(10,20)
res = jisuan.add()
# print(res)
jisuan.sub()
jisuan.mul()
jisuan.div()
class HighLevelStrTool:
def deverse(self,str):
'''
翻转字符串
:param str: 需要翻转的字符串
:return: 翻转后的字符串
'''
return str[::-1]
str_tool = HighLevelStrTool()
res = str_tool.deverse('hello world')
print(res)