python基础语法04

您所在的位置:网站首页 所有水果类 python基础语法04

python基础语法04

2024-07-13 08:53| 来源: 网络整理| 查看: 265

一、面向对象 1、类

类是一系列事件的统称,同类事物必定具有相同的特征。

(1)特征

状态(品种,重量等)/变量(成员变量)

(2)类的定义

定义格式一:

class 类名:

    pass

定义格式二:

class 类名:

    成员

class Cat:

    pass

(3)创建对象

格式:

变量名 = 类名()

cat1 = Cat()

2、类成员

成员变量

(1)定义格式一:

class 类名:

    def __init__(self):

        self.变量名1 = 值1

        self.变量名2 = 值2

        self.变量名3 = 值3

调用格式:

取值:对象名.变量名

赋值:对象名.变量名 = 值

(2)定义格式二:

对象.变量名 = 值

调用格式:

取值:对象名.变量名

赋值:对象名.变量名 = 值

注意:

格式二声明变量:

如果变量名不存在视为定义变量

如果变量名存在视为调用变量

(3)总结

两种变量定义的区别:

1、在类定义中声明的变量为公有变量/公有属性,每个对象均存在此变量对应的属性

2、在创建对象后声明的变量为独有变量/独有属性,仅当前对象存在此变量对应的属性

例子:

class Cat: def __init__(self): self.type = "波斯猫" self.name = None cat1 = Cat() print(cat1.type) cat1.name = "大帅" print(cat1.name) #给cat1穿衣服 cat1.cloth = "red" print(cat1.cloth)

3、类的成员方法

(1)定义格式一:

class 类名:

    def 方法名(self):

        方法体

调用格式一:

对象名.方法名()

注意:

self仅在声明时占位,无需传递具体参数

(2)定义格式二:

class 类名:

    def 方法名(self,形参1,形参2...):

        方法体

调用格式二:

对象名.方法名(实参1,实参2...)

例子:

def eat(self): print("猫吃鱼") def climb(self, meter): print("猫会爬树,爬了%d米" % meter)

4、__init__方法

__init__方法在创建对象时被执行,无需手工调用即可执行

对于程序中声明、定义的方法在特定时机自动执行的方法,称为魔术方法

5、__str__方法

__str__方法在使用print函数打印输出对象到屏幕时被执行,无需手工调用即可执行。该方法也属于魔术方法

__str__()格式:

def __str__(self):

    return 打印对象时显示的信息

二、成员方法条用成员

1、成员方法调用成员变量

公有变量:直接访问,通过self进行

独有变量:访问要慎重,跨对象要重定义

例子:

class Cat: def __init__(self): # 公有变量 self.type = "波斯猫" self.name = None def introduce(self): print("我是一只%s,我叫%s,我是%s色的" %(self.type,self.name,self.color)) cat1 = Cat() cat1.name = "大帅" # 独有变量 cat1.color = "red" cat1.introduce() cat2 = Cat() cat2.name = "小帅" #cat2.introduce()#第二个对象访问第一个对象的私有变量,会报错

2、成员方法调用成员方法

直接用self.方法()来调用

例子:

class Phone: def __init__(self): self.power = 100 def game(self): '''打游戏''' if self.power < 10: print("当前电量不足以打游戏,打游戏操作提前终止") else: print("正在打游戏,耗电10") self.power -= 10 def music(self): if self.power < 5: print("当前电量不足以打听歌,听歌操作提前终止") else: print("正在听歌,耗电5") self.power -= 5 def call(self): if self.power < 4: print("当前电量不足以打电话,打电话操作提前终止") else: print("正在打电话,耗电4") self.power -= 4 def answer(self): if self.power < 3: print("当前电量不足以接电话,接电话操作提前终止") else: print("正在接电话,耗电3") self.power -= 3 def charge(self, num): if self.power + num > 100: self.power = 100 print("充电操作提前结束,当前电量%d" % self.power) else: print("正在充电,充电量是%d" % num) self.power += num def __str__(self): return "当前电量%d" % self.power p = Phone() p.game() p.game() p.game() p.game() p.game() p.game() p.game() p.game() p.game() p.game() p.music() p.answer() print(p) p.charge(5) print(p) p.charge(100) p.music() p.music() p.music() print(p) p.charge(10) print(p) ---------------------------------------------------

正在打游戏,耗电10

正在打游戏,耗电10 正在打游戏,耗电10 正在打游戏,耗电10 正在打游戏,耗电10 正在打游戏,耗电10 正在打游戏,耗电10 正在打游戏,耗电10 正在打游戏,耗电10 正在打游戏,耗电10 当前电量不足以打听歌,听歌操作提前终止 当前电量不足以接电话,接电话操作提前终止 当前电量0 正在充电,充电量是5 当前电量5 充电操作提前结束,当前电量100 正在听歌,耗电5 正在听歌,耗电5 正在听歌,耗电5 当前电量85 正在充电,充电量是10 当前电量95 三、封装 1、私有

对成员私有化可以有效的保护从类的外部对类的内部成员进行访问

(1)私有属性定义格式

self.__属性名 = 值

(2)私有方法定义格式

delf __方法名(self):

    方法体

2、封装

封装操作可以对受访问保护的成员进行功能开放的控制,达到保护数据不被非法访问的目的

3、封装的标准格式

(1)对受保护的变量进行私有设置

self.__变量名 =  值

(2)提供对外访问器

访问器(get方法)

def get_变量名(self):

    return __变量名

(3)修改器(set方法)

def set_变量名(self,形参):

    self.__变量名 = 形参

(4)封装案例

class Cat: def __init__(self): self.__type = "波斯猫" self.__name = None def get_type(self): return self.__type def set_type(self,type): self.__type = type def get_name(self): return self.__name def set_name(self,name): self.__name = name cat1 = Cat() cat1.set_name("大帅") print(cat1.get_name())

4、init(构造方法)自定义参数

为了方便私有属性get和set,因此可以在init自定义参数,这样在对象创建的时候就可以给私有属性赋值。

def __init__(self,形参1,形参2):

    self.__属性名1 = 形参1

    self.__属性名2 = 形参2

五、作业

【代码题】

定义一个水果类,然后通过水果类,创建苹果对象、橘子对象、西瓜对象并分别添加属性:颜色和价格

# 定义一个水果类,然后通过水果类,创建苹果对象、橘子对象、西瓜对象并分别添加属性:颜色和价格 class fruit: def __init__(self,color,price): self.color = color self.price = price apple = fruit("red",24) print("苹果是%s的,价格是%d元一斤" %(apple.color,apple.price)) orange = fruit("orange",25) print("橘子是%s的,价格是%d元一斤" %(orange.color,orange.price)) watermelon = fruit("green",30) print("西瓜是%s的,价格是%d元一斤" %(watermelon.color,watermelon.price))

【代码题】

定义一个电脑类,电脑有品牌,有价格,能放电影。分别创建2个对象"联想电脑" 和 "苹果电脑"。调用放电影的动作,联想电脑播放 电影"葫芦娃",苹果电脑播放"黑猫警长"。

class Computer: def __init__(self,type,price): self.type = type self.price = price def moived(self,moive): print("我可以播放%s电影" % moive) com1 = Computer("联想电脑",10000) print("我是%s,我的价格是%d元" %(com1.type,com1.price)) com1.moived("葫芦娃") com1 = Computer("苹果电脑",12000) print("我是%s,我的价格是%d元" %(com1.type,com1.price)) com1.moived("黑猫警长")

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3