python class

#1 class 基本定义
class test(object):
  a = 1
  def func_1(self):
    pass
# a 被称为 test 的属性
# func_1 被称为 test的 方法

t = test()
print t.a 调用属性
print t.func 1() 调用方法

def __init__(self,arg1,arg2):
  self.arg1 = arg1
  self.arg2 = arg2

#########################################################################################

#
coding=utf-8 """ 1.如何去定义一个最基本的class 2.class最基本的子元素 3.class传参 4.__init__方法 5.class和函数的区别 """ class test(object): # 是函数的集合 def __init__(self,var1): # self 就是class self.var1 = var1 def get(self,a=None): # get 被称之为test对象的方法 return self.var1 pass def get(a): return a t = test('test str heiheihei') # t是类test的一个实例 print t.get() """ 如何去使用对象内置的方法 1.实例化这个class (test) t = test() 2.使用 class.method()的方式去调用 class 的内置方法 注意: 1.当定义一个class的内置方法method时,method的参数的第一个永远是self。 """ # new_var = 4 # print t.get(new_var) # print get(new_var) # 类.函数 与函数的区别

 习题

# coding:UTF-8

#1. 面向对象编程,是面向对象,而不是面向类
class d():
    def a(self):
        pass

#2. 对于刚学会的新手而已,一开始就进行类设计师傻傻的设计
    #伪代码 小程序:直接写流程, 大项目:先分析结构

#3. 有趣的面向对象

class Base(object):

    def __init__(self,name):
        self.name = name

class b(Base):          #  class b 继承了 class Base,有他的功能

    def get_name(self):
        return self.name

new_class = b('lilei')
print (new_class.get_name())

'''
需求: 描述人类的恋爱,成婚,生子的过程

一 分解需求
1.男人和女人的恋爱 1+0 =1
2.男人和男人的恋爱 1+1 =2
3.女人和女人的恋爱 0+0 =0

二 找到共通性
1.都是人
2.两个人

三 找到最小节点
1.男人
2.女人

共同的属性:
1 姓名:name
2 性别:gender

共同的方法:
1. meet() 输出:return'这是谁和谁的恋爱'
2. marry() 输出: return'这是谁和谁的婚姻'
3. children() 输出:return'这是谁和谁的孩子'
'''
class Boy:
    gender = 1
    def __init__(self,name):
        self.name = name
class Girl:
    gender = 0
    def __init__(self,name):
        self.name = name

class Love:
    def __init__(self,name_one,name_two):
        self.one = name_one
        self.two = name_two
    def meet(self):
        return u'这是%s和%s的恋爱'%(self.one.name,self.two.name)
    def marry(self):
        return u'这是%s和%s的婚姻'%(self.one.name,self.two.name)
    def children(self):
        return u'这是%s和%s的孩子'%(self.one.name,self.two.name)

class Normal_love(Love):
    def __init__(self,  name_one, name_two):
        Love.__init__(self,name_one,name_two)
        if name_one.gender + name_two.gender !=1:
            raise TypeError('not between a man and a women')

class Gay_love(Love):
    def __init__(self,  name_one, name_two):
        Love.__init__(self,name_one,name_two)
        if name_one.gender + name_two.gender !=2:
            raise TypeError('not between a man and a women')

class Lesbian_love(Love):
    def __init__(self,  name_one, name_two):
        Love.__init__(self,name_one,name_two)
        if name_one.gender + name_two.gender !=0:
            raise TypeError('not between a man and a women')


Adam = Boy('Adam')
John = Boy('John')
Alice = Girl('Alice')
Mia = Girl('Mia')

Ad_and_Jo = Gay_love(Adam, John)
assert Ad_and_Jo.meet() == u'这是Adam和John的恋爱'
Mi_and_AL = Lesbian_love(Mia, Alice)
assert Mi_and_AL.marry() == u'这是Mia和Alice的婚姻'
Ad_and_Al = Normal_love(Adam, Alice)
assert Ad_and_Al.children() == u'这是Adam和Alice的孩子'

print(Ad_and_Jo.meet())


'''
#4. 先实现,再优化,过早优化是万恶之源
#5. kiss 原则

最小惊讶原则
不追求机巧,有难度的代码在不得不用的时候使用
#6. 函数的闭包
'''

 

posted @ 2017-01-30 12:14  Thinkando  阅读(344)  评论(0编辑  收藏  举报