GVKun编程网logo

assert False 与 try 结合 在开发中的使用(assert和try区别)

16

本篇文章给大家谈谈assertFalse与try结合在开发中的使用,以及assert和try区别的知识点,同时本文还将给你拓展2022-09-30:以下go语言代码输出什么?A:truetruefal

本篇文章给大家谈谈assert False 与 try 结合 在开发中的使用,以及assert和try区别的知识点,同时本文还将给你拓展2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true、2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。 package main import “f、4.76 匿名内部类在开发中的使用、Assert.assertEquals 没有以正确的方式比较 String等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

assert False 与 try 结合 在开发中的使用(assert和try区别)

assert False 与 try 结合 在开发中的使用(assert和try区别)

 

让错误抛出

发现其中的问题

 

 

# coding=utf-8

from rest_framework.views import exception_handler
from rest_framework.exceptions import ErrorDetail
from share.dj_customer.rest_api_exception import CustomerError


def custom_exception_handler(exc, context):
    # Call REST framework''s default exception handler first,
    # to get the standard error response.
    ....
        if isinstance(old_data, dict):
            if old_data.get(''detail'') is not None:
                if isinstance(old_data[''detail''], tuple):
                    new_data[''code''], new_data[''message''] = old_data[''detail''][0:2]
                elif isinstance(old_data[''detail''], str):
                    new_data[''message''] = old_data[''detail'']
            else:
                try:
                    # e.g. user_name [ErrorDetail(string=''Ensure this field has no more than 16 characters.'', code=''max_length'')]
                    msg = ''''
                    for serializer_field, v in old_data.items():
                        if isinstance(serializer_field, str) and isinstance(v, list):
                            if isinstance(v[0], ErrorDetail):
                                msg += serializer_field + '':'' + v[0].__str__()
                            else:
                                assert False
                        else:
                            assert False
                    # e.g.
                    # {
                    #     "success": false,
                    #     "code": 1001,
                    #     "message": "参数错误 : user_name:Ensure this field has no more than 16 characters.age:A valid integer is required."
                    # }
                    new_data[''code''], new_data[''message''] = CustomerError.PARAM_ERROR
                    new_data[''message''] += '' : '' + msg
                except:
                    assert False

  

 

2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true

2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true

2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true true false false;D: true true false true true。

package main

func main() {
    var (
        a int         = 0
        b int64       = 0
        c interface{} = int(0)
        d interface{} = int64(0)
    )

    println(c == 0)
    println(c == a)
    println(c == b)
    println(d == b)
    println(d == 0)
}

答案选A。第3个为false,是因为c是int类型,b是int64类型。第5个为false,那是因为d是int64类型,0是int类型,这个0很容易被当成无类型,会误认为是true。从这里可以看出,做比较的时候,是没有无类型的概念的。

在这里插入图片描述

2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。 package main import “f

2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。 package main import “f

2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。

package main

import "fmt"

func main() {
    s := []string{"A", "B", "C"}

    t := s[:1]
    fmt.Println(&s[0] == &t[0])

    u := append(s[:1], s[2:]...)
    fmt.Println(&s[0] == &u[0])
}

答案选C。这里的关键点是 append(s[:1], s[2:]...) 会不会导致扩容。s[:1] 相当于 s[:1:3],即容量是也是 3,因此 append 一个元素(s[2:]...)并不会导致扩容,因此第一个元素还是原来 s[0] 的元素。 在这里插入图片描述

4.76 匿名内部类在开发中的使用

4.76 匿名内部类在开发中的使用

/*
匿名内部类在开发中的使用
*/
interface Person {
	public abstract void study();
}

// 实现类
class Student implements Person {
	public void study() {
		System.out.println("好好学习,天天向上");
	}
}

class PersonDemo {
	// 接口名作为形式参数
	// 其实这里需要的不是接口,而是该接口的实现类的对象
	public void method(Person p) {
		p.study();
	}
}

class InnerClassTest2 {
	public static void main(String[] args) {
		// 测试
		PersonDemo pd = new PersonDemo();
		Person p = new Student();
		pd.method(p);
		System.out.println("--------------------");

		// 匿名内部类在开发中的使用
		// 匿名内部类的本质是继承类或者实现了接口的子类匿名对象
		pd.method(new Person() {
			@Override
			public void study() {
				System.out.println("好好学习,天天向下");
			}
		});
	}
}


Assert.assertEquals 没有以正确的方式比较 String

Assert.assertEquals 没有以正确的方式比较 String

System.out.println 在您的文本之后追加一个新行 \n,这是比较的一部分,因为 StdOut 的所有内容都被您的 IOHelper 捕获,但您预期的 String 不包含新行。您可以改用 System.out.print 来避免这种情况。

我们今天的关于assert False 与 try 结合 在开发中的使用assert和try区别的分享已经告一段落,感谢您的关注,如果您想了解更多关于2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true、2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。 package main import “f、4.76 匿名内部类在开发中的使用、Assert.assertEquals 没有以正确的方式比较 String的相关信息,请在本站查询。

本文标签: