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. 函数的闭包 '''