python——面向对象

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值