zoukankan      html  css  js  c++  java
  • python 对比学习

    python和java面向对象的不同

    1.属性和方法

    java中类的属性(static)除外,对象全部独立拥有;

    而python中类的属性,其实例对象一个字段都没有.底层是这么搞的: 对象object获取属性时,如果自己没有并不报错,而是去类中找,找不到才报错.

    方法和java一样,普通的方法是对象的,要申明为类的静态方法必须使用@classmethod来表示是类的静态变量

    2.构造方法:

    java可以有多个,更加参数的多少决定

    而python没有方法重载,故没有多个构造方法

    一。小知识点:

    1.python没有contains,使用find返回查到的元素的位置(只查一个符合的)

    2.python的数组和集合添加元素不是add,使用append(快速构建list可是使用range(10) = [0,1,2,3,4,5,6,7,8,9])

    3.python的set添加元素add,删除元素remove(和java一样)

    4.fn(*x) x表示一个tuple; 而 fn(**x) x表示一个字典,而且对该字典you要求,key必须为str,同时fn(**x)还有个特殊写法,直接给x=xxx,y=xxx,简直太牛逼了。

    5.高阶函数一般用这种log('info'),包含了一个参数的装饰器。 首先不带参数的装饰器(2阶即可):

    第一阶:修饰的形参函数, 第二阶:函数的参数

    def log1(fn): #fn:装饰的函数
      def wapper(*args,**kw): #fn的参数
        print 'log1日志:'
        return fn(*args, **kw)
       return wapper

    @log1
    def mytest(**kw):
      sys.stdout.write('mytest函数执行,参数为:')
      for x,y in kw.items():
      sys.stdout.write(str(x) + ':' + str(y) + ', ')

    但是如果包含了参数的,则需要三阶。  第一阶:装饰器所带参数作为形参,第二阶:修饰的形参函数, 第三阶:函数的参数

    def log(txt):#一阶txt是自己的参数
      def wapper(fn): #二阶这里拿到装饰函数的形参fn
        def wapper2(*args,**kw): #三阶拿到装饰函数的参数
          sys.stdout.write(txt+'级别日志:')
          return fn(*args, **kw)
        return wapper2
      return wapper

    @log('info')
    def test(**kw):
      sys.stdout.write('test函数执行,参数为:')
      for x,y in kw.items():
        sys.stdout.write(str(x) + ':' + str(y) + ', ')

    test(x=1,y=2)

    6.django总update和insert都可以通过save方法实现,到底是insert还是update,默认通过主键是否有值来判断。 如果我们确认只需要insert,则使用 对象.save(force_insert=true,using='哪个数据库');

    如果我们确认只需要update,则使用 对象.save(force_update=True,update_fields=['aaa','bbb'])

  • 相关阅读:
    Castle Windsor 学习-----Installer的几种安装方式
    asp.net mvc源码分析-Route的GetRouteData
    查看iis对应w3wp.exe显示的进程ID号(转载)
    jvisualvm安装Visual GC插件
    Modelsimse10.4如何编译altera库文件以支持IP仿真
    sublime text3 配置使用
    Modelsim调用用do脚本自动化仿真
    Quartus16.0如何使用TCL脚本
    Java中使用Timer和TimerTask实现多线程
    框架导论
  • 原文地址:https://www.cnblogs.com/yanjunwu/p/10580455.html
Copyright © 2011-2022 走看看