selfPython 中这个词的目的是什么?我理解它指的是从该类创建的特定对象,但我不明白为什么它明确需要作为参数添加到每个函数.为了说明,在Ruby中我可以这样做:
class myClass
def myFunc(name)
@name = name
end
end
Run Code Online (Sandbox Code Playgroud)
我很容易理解.但是在Python中我需要包括self:
class myClass:
def myFunc(self, name):
self.name = name
Run Code Online (Sandbox Code Playgroud)
谁能跟我说说这个?这不是我在(无可否认的有限)经历中遇到的事情.
我无法理解类的初始化.
它们有什么意义,我们如何知道它们包含哪些内容?在类中编写需要不同类型的思考而不是创建函数(我想我可以创建函数,然后将它们包装在一个类中,这样我就可以重用它们.这会起作用吗?)
这是一个例子:
class crawler:
# Initialize the crawler with the name of database
def __init__(self,dbname):
self.con=sqlite.connect(dbname)
def __del__(self):
self.con.close()
def dbcommit(self):
self.con.commit()
Run Code Online (Sandbox Code Playgroud)
或者另一个代码示例:
class bicluster:
def __init__(self,vec,left=None,right=None,distance=0.0,id=None):
self.left=left
self.right=right
self.vec=vec
self.id=id
self.distance=distance
Run Code Online (Sandbox Code Playgroud)
__init__在尝试阅读其他人的代码时遇到了很多类,但我不了解创建它们的逻辑.
我有一个python类,看起来像这样:
class Process:
def __init__(self, PID, PPID, cmd, FDs, reachable, user):
Run Code Online (Sandbox Code Playgroud)
其次是:
self.PID=PID
self.PPID=PPID
self.cmd=cmd
...
Run Code Online (Sandbox Code Playgroud)
有没有办法自动初始化这些实例变量,比如C++的初始化列表?它会节省大量冗余代码.
在Python中,我想知道是否有必要__init__在创建类时包含第一个方法,如下例所示:
class ExampleClass:
def __init__(self, some_message):
self.message = some_message
print "New Class instance created, with message:"
print self.message
Run Code Online (Sandbox Code Playgroud)
另外,我们为什么self要用来调用方法呢?有人可以详细解释"自我"的使用吗?
另外,为什么我们pass在Python中使用语句?
我对python很新,并注意到这些帖子: Python __init__和self他们做了什么?和 Python类没有使用def __init __(self)
然而,在玩完它之后,我注意到这两个类别给出了明显相同的结果 -
class A(object):
def __init__(self):
self.x = 'Hello'
def method_a(self, foo):
print self.x + ' ' + foo
Run Code Online (Sandbox Code Playgroud)
(来自这个问题)
和
class B(object):
x = 'Hello'
def method_b(self,foo):
print self.x + ' ' + foo
Run Code Online (Sandbox Code Playgroud)
这两者之间有什么真正的区别吗?或者,更一般地说,是否确实__init__改变了关于类的属性的任何内容?在文档中提到了__init__在创建实例时调用的文档.这是否意味着在实例化之前建立x了类B?
我有以下表格.在用户最终更改其电子邮件之前,如何再次检查用户的密码.即使他已登录,我只想确定它真的是用户.只是一个安全的事情.
我该怎么做.check_password()?
'EmailChangeForm' object has no attribute 'user'
/home/craphunter/workspace/project/trunk/project/auth/user/email_change/forms.py in clean_password, line 43
from django import forms
from django.db.models.loading import cache
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User
class EmailChangeForm(forms.Form):
email = forms.EmailField(label='New E-mail', max_length=75)
password = forms.CharField(widget=forms.PasswordInput)
def __init__(self, user, *args, **kwargs):
super(EmailChangeForm, self).__init__(*args, **kwargs)
self.user = user
def clean_password(self):
valid = self.user.check_password(self.cleaned_data['password'])
if not valid:
raise forms.ValidationError("Password Incorrect")
return valid
def __init__(self, username=None, *args, **kwargs):
"""Constructor.
**Mandatory arguments**
``username``
The username of the …Run Code Online (Sandbox Code Playgroud) 在阅读OpenStack的代码时我遇到了这个问题.
名为"Service"的类继承基类"object",然后在Service的__init__()方法__init__中调用object .相关代码如下所示:
类定义:
class Service(object):
Run Code Online (Sandbox Code Playgroud)
和服务的init方法定义:
def __init__(self, host, binary, topic, manager, report_interval=None,
periodic_interval=None, *args, **kwargs):
Run Code Online (Sandbox Code Playgroud)
并在Service的init中调用super(这里的'object'):
super(Service, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我不明白最后一次电话,object.__init__()它实际上做了什么?有人可以帮忙吗?
我有不错的编程水平,并从这里的社区中获得了很多价值。然而,我从来没有在编程方面进行过太多的学术教学,也没有与真正有经验的程序员一起工作。因此,我有时会为“最佳实践”而苦恼。
对于这个问题,我找不到更好的地方,尽管可能有讨厌这些问题的喷子,我还是发布了这个。如果这让你感到不安,很抱歉。我只是想学习,而不是惹你生气。
题:
当我创建一个新类时,我是否应该在init 中设置所有实例属性,即使它们是 None 并且实际上后来在类方法中分配了值?
MyClass 的属性结果见下例:
class MyClass:
def __init__(self,df):
self.df = df
self.results = None
def results(df_results):
#Imagine some calculations here or something
self.results = df_results
Run Code Online (Sandbox Code Playgroud)
我在其他项目中发现,当类属性只出现在类方法中时,它们可能会被埋没,而且还有很多事情要做。
那么对于经验丰富的专业程序员来说,什么是标准做法呢?为了可读性,您会在init 中定义所有实例属性吗?
如果有人有任何关于我可以在哪里找到这些原则的材料的链接,那么请将它们放在答案中,我们将不胜感激。我知道 PEP-8 并且已经在上面搜索了我的问题好几次,但找不到任何涉及此问题的人。
谢谢
安迪
我不完全理解课程.我已经阅读了python文档和其他几个教程.我得到了它的基本要点,但不明白细微差别.比如我的代码在这里:
class whiteroom():
""" Pick a door: red, blue, green, or black. """
do = raw_input("> ")
if "red" in do:
print "You entered the red room."
elif "blue" in do:
print "You entered the blue room."
elif "green" in do:
print "You entered the green room."
elif "black" in do:
print "You entered the black room."
else:
print "You sit patiently but slowly begin to stave. You're running out of time."
return whiteroom()
game = whiteroom()
game
Run Code Online (Sandbox Code Playgroud)
(原始键盘 …
我目前有以下脚本,可以帮助您找到doc2vec模型的最佳模型。它的工作方式如下:首先根据给定的参数训练一些模型,然后针对分类器进行测试。最后,它输出最佳模型和分类器(我希望)。
数据
可以在此处下载示例数据(data.csv):https ://pastebin.com/takYp6T8 请 注意,该数据的结构应能以1.0的精度构成理想的分类器。
脚本
import sys
import os
from time import time
from operator import itemgetter
import pickle
import pandas as pd
import numpy as np
from argparse import ArgumentParser
from gensim.models.doc2vec import Doc2Vec
from gensim.models import Doc2Vec
import gensim.models.doc2vec
from gensim.models import KeyedVectors
from gensim.models.doc2vec import TaggedDocument, Doc2Vec
from sklearn.base import BaseEstimator
from gensim import corpora
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import Pipeline
from sklearn.model_selection import …Run Code Online (Sandbox Code Playgroud) python ×9
class ×4
oop ×2
django ×1
gensim ×1
grid-search ×1
init ×1
instance ×1
object ×1
pipeline ×1
python-attrs ×1
scikit-learn ×1
self ×1
web ×1