我正在学习Python中的绳索.当我尝试Foobar使用该print()函数打印类的对象时,我得到如下输出:
<__main__.Foobar instance at 0x7ff2a18c>
Run Code Online (Sandbox Code Playgroud)
有没有办法可以设置类及其对象的打印行为(或字符串表示)?例如,当我调用类对象时,我想以某种格式打印其数据成员.如何在Python中实现这一点?print()
如果您熟悉C++类,则可以通过为类ostream添加friend ostream& operator << (ostream&, const Foobar&)方法来实现上述标准.
我在Python中使用nltk库; 我的背景是Java.我不明白我写的代码的控制台输出.尽管我将初始化变量tokens作为列表,但为什么Python会返回一个奇怪的形式.
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
import nltk
def tokenize_sentence(sentence):
tokens=[]
tokens = word_tokenize(sentence)
tokens = (word for word in tokens if word not in \
set(stopwords.words('english')))
return tokens;
a="John is an actor."
print(tokenize_sentence(a))
Run Code Online (Sandbox Code Playgroud)
输出:
<generator object tokenize_sentence.<locals>.<genexpr> at 0x10dc5b1a8>
Run Code Online (Sandbox Code Playgroud)
我看到这个输出类似于Java当我尝试打印未定义toString()方法的对象时所做的事情.