【类不类一】类和对象

 

        类和函数紧密关联,可以说,无函数不成类,因此,既然函数可以代替那些要重复的代码,节省空间,

那么作为承载了一大堆的函数的类,不是更能让我们的视野一片酸爽嘛?

         参考: 习题—40,  效果就是用类,把列表的元素一行行打印出来......

《笨方法学Python》:  http://www.2cto.com/shouce/Pythonbbf/index.html

 

解法1: 先不初始化(不使用__init__()方法/函数)

 1 # coding: utf-8
 2 # 声明编码是采用 "utf-8", 这是对应汉字的编码
 3 
 4 # object: 对象是非必须的,但为了表示Song类是object的子类,还是加上吧
 5 class Song(object):
 6    
 7     def sing(self, lyrics):
 8         # 将列表进行迭代的,也就是把列表的元素逐个打印出来
 9         for line in lyrics:
10             print line
11 
12 song = Song()
13 
14 song.sing(["Happy birthday to you",
15               "I don't want to get sued",
16               "So I'll stop right there"])

 

---------------------------------------------------------------------------------------------------------------------

解法2: 主角登场,说我嘛,Q > Q __int__()

 1 # coding: utf-8
 2 
 3 class Song(object):
 4     
 5     # def: (define) 定义,  init: (initialize) 初始化, 这一句是定义初始化函数
 6     # self: 自己,本身,所以self就是用来的表示Song类自己的
 7     def __init__(self, lyrics):
 8         self.lyrics = lyrics
 9      
10     def sing(self):
11         for line in self.lyrics:
12             print line
13 
14 # 这一步骤叫类的实例化,也就是把Song类的功能都赋值给song对象,所以对
15 # 象又叫类的实例
16 song = Song(["Happy birthday to you", 
17                    "I don't want to get sued",
18                    "So I'll stop right there"])
19 
20 song.sing()

        输出结果是一样的, 值得强调的是,由于这里只定义了一个函数,所以并不能体现出类的优势,方法

1 和方法 2 的不同之处就在于,sing()函数利用了从初始化函数那里传递过来的实例变量self.lyrics,因为

类里面的函数之间,只有 "self" 是共有的参数,所以以这样的命名方式命名实例变量 self.lyrics,可以体现

它的功能,即类里面的函数与函数之间可自由调用—实例变量

------------------------------------------------------------------------------------------------------------------------      

        继续了解类,请点下面链接 -|——>

【类不类2】: http://www.cnblogs.com/Ruby517/p/5821540.html

posted @ 2016-07-27 00:47  坏小孩D_R  阅读(300)  评论(0编辑  收藏  举报