LearnPython3theHardWay__Excercise 40 Modules, Classes, and Objects

**ex40- 44都是类的知识 **

python 被称作 面向对象编程语言,就是说,在python中有一个称为类的结构,可以让您以特定的方式构造软件。使用类,您的程序将变得连贯,更简洁。
现在我们开始学习OOP(面向对象编程),这词对零计算机基础的人非常不友好。我们必须通过大量的输入代码练习,努力去理解。

Modules Are Like Dictionaries,模块就像字典

嗯,作者是这么说的,像字典,我是觉得这种说法对零基础的来说难理解。

  1. 模块就是一个文件,里面有方法和变量
  2. 它能被导入 import
  3. 要用小句点” . ” 来调用到模块的方法

其实最直接的方法就是打开模块文件看一下,我们打开下载的第三方库,后缀名为py的文件。里面有方法,有属性,有类。我们之前写的脚本,有函数,有变量的,保存好后,其实就可以称之为模块了 ,跟调用其他库一样的用法

Classes Are Like Modules

直接上代码

class MyStuff(object):

	def __init__(self):
		self.tangerine = "And now a thousand years between"
	def apple(self):
		print("I AM CLASSY APPLES!")

这段代码最让人困惑的是,双下划线包着的__init__和 self。

Objects Are Like Import 对象就像import

一个类被创建后,通常下一步我们就是创建一个“实例对象”

thing = MyStuff()          起个名字 = 类名, 这样就创建“实例”对象了
thing.apple()
print(thing.tangerine)
第一个类练习
class Song(object):

    def __init__(self, lyrics): # 初始化输入的Lyric 歌词内容
        self.lyrics = lyrics  # 定义一个属性self.lyrics = 输入的lyric内容
        
    def sing_me_a_song(self):
        for line in self.lyrics:
            print(line)

happy_bday = Song(["Happy birthday to you",
                   "I don't want to get sued",
                   "So I'll stop right there"])

bulls_on_parade = Song(["They rally around tha family",
                        "With pockets full of shells"])

happy_bday.sing_me_a_song()

bulls_on_parade.sing_me_a_song()
What you should see
Happy birthday to you
I don't want to get sued
So I'll stop right there
They rally around tha family
With pockets full of shells
Study Drills
  1. 写更多的歌曲,至到感觉到了参数的传递,如例子中的lyrics
  2. 将歌词变成单独的变量,传递给类使用
  3. 多读面向对象编程的资料,不懂没关系
我对类的理解

大家都玩过游戏,很多游戏都会让玩家创建角色,其实这个过程就跟类一模一样的,下面举个例子,为方便都用中文

class 战士():
	幸运:60			==> 这里是规定好的属性值,只要创建战士,初始值都是这些
	身高:190
	速度:30
	def __init__(self,姓名,性别,攻击力,防御力):    ==> 这里是初始化角色属性的地方,输入给角色创建的名字和性别作为参数,self是实例对象
		self.name = 姓名						   ==> 得到名字和性别,攻击力,防御力后赋予给角色的属性
		self.sex = 性别
		self.attack = 攻击力
		self.defensive = 防御力
	def 龟派气功(self):
		...

player1 = 战士(孙悟空,,99,99)		==> 这样我们就创建了一个战士“实例对象”了
player1.龟派气功()    				==> 这样实例的方法就调用了
player1.name						==> 孙悟空
player2 = 战士(苍老湿,,100,0)		==> 当然,可以创建无数个实例对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值