相关疑难解决方法(0)

自我的目的是什么?

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)

谁能跟我说说这个?这不是我在(无可否认的有限)经历中遇到的事情.

python oop class self

1061
推荐指数
17
解决办法
81万
查看次数

为什么我们在Python类中使用__init__?

我无法理解类的初始化.

它们有什么意义,我们如何知道它们包含哪些内容?在类中编写需要不同类型的思考而不是创建函数(我想我可以创建函数,然后将它们包装在一个类中,这样我就可以重用它们.这会起作用吗?)

这是一个例子:

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

113
推荐指数
5
解决办法
16万
查看次数

自动初始化实例变量?

我有一个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 class initialization-list

75
推荐指数
8
解决办法
3万
查看次数

是否有必要在Python的类中每次都包含__init__作为第一个函数?

在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

37
推荐指数
3
解决办法
4万
查看次数

def __init __(self)的用处?

我对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

python

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

再次来自用户的check_password()

我有以下表格.在用户最终更改其电子邮件之前,如何再次检查用户的密码.即使他已登录,我只想确定它真的是用户.只是一个安全的事情.

我该怎么做.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)

python authentication django web

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

object的__init __()方法在python中做了什么?

在阅读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__()它实际上做了什么?有人可以帮忙吗?

python object init

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

在 __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 instance-variables instance python-attrs

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

Python - 类和OOP基础知识

我不完全理解课程.我已经阅读了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)

(原始键盘 …

python oop

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

Doc2Vec的管道和GridSearch

我目前有以下脚本,可以帮助您找到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)

pipeline gensim scikit-learn grid-search

6
推荐指数
1
解决办法
908
查看次数