zoukankan      html  css  js  c++  java
  • 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. 函数的闭包
    '''
  • 相关阅读:
    20个软件开发常用设计文档大全下载
    php短信接口(基于商麦无限)
    PHP与ajax,无刷新表单提交
    解决GD中文乱码问题
    php中json_decode()和json_encode()的使用方法
    一些页面自动跳转的实现
    已损坏文档修复
    php中从结果集获取一条数据和所有数据的方法函数
    VIM 用法小记
    PHP与JavaScript下的Cookie操作
  • 原文地址:https://www.cnblogs.com/think-and-do/p/6358017.html
Copyright © 2011-2022 走看看