Python 函数式编程和OOP编程 0001测试

# encoding: utf-8 
stu1 = { 'name':'a' , 'score':'1' }
stu2 = { 'name':'b' , 'score':'2' }

def stu_score(stu_score):
        print ('%s , %s ' % ( stu_score['name'],stu_score['score'] ))

#stu_score(stu1)

## OOP
# 首选思考的不是程序的执行流程

# define class use class keyword 
class Stu_list(object):
        def __init__ (self,name,score):
                self.name = name 
                self.score = score 
        def print_score(self):
                return ('%s , %s' % (self.name , self.score))

        def get_score_grade(self):
                if self.score > 50:
                        return "A"
                elif self.score >= 30:
                        return "B"
                else :
                        return "C"

stuA = Stu_list('zhang',50)
print ( stuA.print_score() , stuA.get_score_grade() )
#  类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我们后面再讲,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。
# 由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在
创建实例的时候,就把name,score等属性绑上去
# 注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向
创建的实例本身。
# 有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实
例变量传进去
# 和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self, 调用时,不用传递该参数
# 类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。
# 要定义一个方法,除了第一个参数是self外,其他和普通函数一样。要调用一个方法,只需要在实例变量上直接调用,除了self不用传递,其他参数
正常传入
# 数据封装,些数据和逻辑被“封装”起来了,调用很容易,但却不用知道内部实现的细节。
原文地址:https://www.cnblogs.com/jinhh/p/8032864.html