标签: object-to-string

Python3错误:TypeError:无法隐式地将'bytes'对象转换为str

我正在learnpythonthehardway进行练习41并继续得到错误:

  Traceback (most recent call last):
  File ".\url.py", line 72, in <module>
    question, answer = convert(snippet, phrase)
  File ".\url.py", line 50, in convert
    result = result.replace("###", word, 1)
TypeError: Can't convert 'bytes' object to str implicitly
Run Code Online (Sandbox Code Playgroud)

我使用python3而书籍使用python2,所以我做了一些改动.这是脚本:

#!/usr/bin/python
# Filename: urllib.py

import random
from random import shuffle
from urllib.request import urlopen
import sys

WORD_URL = "http://learncodethehardway.org/words.txt"
WORDS = []

PHRASES = {
            "class ###(###):":
                "Make a class named ### that is-a ###.",
            "class ###(object):\n\tdef __init__(self, ***)" :
                "class ### has-a …
Run Code Online (Sandbox Code Playgroud)

python type-conversion typeerror object-to-string

39
推荐指数
2
解决办法
9万
查看次数

为什么我的toString()重写方法必须公开?

我是Java新手,我正在学习基础知识.我正在研究该toString方法以及如何在我自己的类中覆盖它.我只是想知道为什么toString要这样public?是因为它是在Object课堂上定义的吗?

java object-to-string

14
推荐指数
3
解决办法
2867
查看次数

Haskell在F#中的"派生表演"?

在Haskell中,通过简单地添加deriving Show到类型定义,很容易将代数类型/区分联合"可显示"作为字符串.

在F#中,我最终写出如下内容:

type Pos = 
    | Pos of int * int
    override this.ToString() = 
        match this with
        Pos(startp, endp) -> sprintf "Pos(%d, %d)" startp endp
Run Code Online (Sandbox Code Playgroud)

显然,对于更复杂的类型,它会变得更糟.

有什么办法得到像deriving ShowF#的东西?

.net f# haskell discriminated-union object-to-string

10
推荐指数
1
解决办法
856
查看次数

具有动态参数的积分型预期开关的值

只是出于好奇.

如果我有以下代码

public static string Format(dynamic exception)
{
    switch (exception.GetType().ToString())
    {
        case "test":
            return "Test2";
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

我得到错误"开关表达式或案例标签必须是bool,char,string,integral,enum或相应的可空类型"

但如果我有以下代码

public static string Format(dynamic exception)
{
    string test = exception.GetType().ToString();
    switch (test)
    {
        case "test":
            return "Test2";
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

一切都很好.如果交换机正在检查Type string和ToString()的变量,那是什么区别?或者是因为在调用ToString()之前有机会抛出异常?

c# exception switch-statement dynamic-variables object-to-string

9
推荐指数
1
解决办法
8059
查看次数

.ToString()方法如何工作?

有时当我调用类的.ToString()方法时,它会返回类的完全限定名.但是对于某些类的/ struct(例如Int32),它返回一个字符串对应的对象(整数的值).这是否意味着Int32该类重写该ToString()方法,并且返回完全限定名称的类不会覆盖它,而只是调用base的(Object's)ToString()方法?Object.ToString()实现是否只返回类的完全限定名称?

c# tostring object-to-string

6
推荐指数
2
解决办法
2万
查看次数

Object.toString()如何适用于不同的底层类型?

我不明白为什么这在java中有效:

如果我在对象中有一个Integer对象,例如:

Object myIntObj = new Integer(5);
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

System.out.println(myIntObj);
Run Code Online (Sandbox Code Playgroud)

输出是: 5

我现在认为Integer类有一个toString方法的ovveride,但在这种情况下是不同的(我认为).对于多态性,如果我在"父变量"中有一个"子对象",则该对象不会更改其实际类型(在本例中为Integer)但是......它(在Object变量中)只能使用方法对象类,为什么我写:

System.out.println(myIntObj);
Run Code Online (Sandbox Code Playgroud)

我可以直接看到数字5而不是这个对象的引用?因为对象类中的toString方法默认只返回对象引用的字符串.

喜欢:

Object currentPlayer = new Player();
System.out.println(currentPlayer);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,输出是Player objecet的引用,因为在对象类中称为toString方法.

那么为什么在之前的例子中我没有看到引用而是直接看到数字呢?通过逻辑,多态的规则说:如果你在"父"变量中有一个"子"对象,那么这个对象在里面,remanis相同,但是他被用作对象的一个​​对象,所以他可以只使用class对象只是对象的方法,所以真的很奇怪,我没有看到引用而是直接的数字.

我希望你明白我的意思.

java object tostring object-to-string

5
推荐指数
1
解决办法
1907
查看次数

无法覆盖toString方法

我写了一个计时器类.我想覆盖它的toString方法.但是当我调用该toString方法时,它仍然返回超级实现.(班级的完全限定名称)

这是我的计时器类:

import android.os.Handler;
import android.widget.TextView;

public class Timer implements Comparable<Timer> {
    private Handler handler;
    private boolean paused;
    private TextView text;

    private int minutes;
    private int seconds;

    private final Runnable timerTask = new Runnable () {
        @Override
        public void run() {
            if (!paused) {
                seconds++;
                if (seconds >= 60) {
                    seconds = 0;
                    minutes++;
                }

                text.setText (toString ()); //Here I call the toString
                Timer.this.handler.postDelayed (this, 1000);
            }
        }
    };

    //Here is the toString method, anything wrong? …
Run Code Online (Sandbox Code Playgroud)

java android overriding object-to-string

5
推荐指数
1
解决办法
534
查看次数

PHP为类分配默认函数

我相对较新的PHP,但已意识到它是一个强大的工具.所以请原谅我的无知.

我想创建一组具有默认功能的对象.

因此,不是在类中调用函数,而是可以输出类/对象变量,它可以执行默认函数即toString()方法.

问题: 有没有办法在类中定义默认函数?

class String {
     public function __construct() {  }

     //This I want to be the default function
     public function toString() {  }

}
Run Code Online (Sandbox Code Playgroud)

用法

$str = new String(...);
print($str); //executes toString()
Run Code Online (Sandbox Code Playgroud)

php object-to-string

4
推荐指数
1
解决办法
3175
查看次数

使用另一个Object的toString结果构造一个新的Object()

我想知道是否有可能获得一个Object的String值来访问同一台机器(相同的RAM)上的Object或通过该特定的String访问相同的VM.

例如

Object objA1 = new Object();
System.out.print(objA1.adress); => output: d146a6581ed9e
Object objExt = Object.buildFromMemoryAdress("d146a6581ed9e");
Run Code Online (Sandbox Code Playgroud)

我希望你明白我想要了解的内容.

编辑:我找到了

http://javapapers.com/core-java/address-of-a-java-object/#&slider1=1

一个允许我在(VM?)内存中获取实例逻辑地址字符串的类: sun.misc.Unsafe

我想我也可以使用Unsafe从(限制在VM?)内存中检索一个对象.

如果不可能这样,我将如何做,并且因为出于好奇,是否有其他语言(特别是高端)允许直接内存访问这样的?

java memory-management object object-to-string

2
推荐指数
1
解决办法
165
查看次数

+""比.toString()更好吗?

由于myObject.toString()失败myObjectnull(抛出a NullPointerException),因此它更安全myObject+"",因为它本质上正在做String.valueOf(myObject).concat(""),但不会失败,而是会导致字符串"null".

但是,这是一个好习惯吗?我的第一个想法是,似乎可能需要更长的时间才能执行,因为它隐含地调用了两种方法,但它确实有助于保证软件不会崩溃.

java object-to-string

2
推荐指数
1
解决办法
109
查看次数