标签: init

Python 打印对象地址而不是值

我想打印已添加到列表中的所有曲目tracks[]。当我尝试这样做时,我得到的是该对象在内存中的地址,而不是它的实际值。我显然不明白对象创建/将对象从一个类传递到另一个类是如何工作的。

class Song:

    def __init__(self, title, artist, album, track_number):
        self.title = title
        self.artist = artist
        self.album = album
        self.track_number = track_number

        artist.add_song(self)


class Album:

    def __init__(self, title, artist, year):
        self.title = title
        self.artist = artist
        self.year = year

        self.tracks = []

        artist.add_album(self)

    def add_track(self, title, artist=None):
        if artist is None:
            artist = self.artist

        track_number = len(self.tracks)

        song = Song(title, artist, self, track_number)

        self.tracks.append(song)
        print(self.tracks)


class Artist:
    def __init__(self, name):
        self.name = name

        self.albums = []
        self.songs = [] …
Run Code Online (Sandbox Code Playgroud)

python oop inheritance init

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

Swift init 方法中的三个点

我正在查看一些 Apple Combine 源代码,并看到一个 Publisher 名称MergeMany及其定义如下的 init 方法:

public init(_ upstream: Upstream...)
Run Code Online (Sandbox Code Playgroud)

...后面的三个点是什么Upstream?的值Upstream只是结构定义中定义的另一个发布者。

public struct MergeMany<Upstream> : Publisher where Upstream : Publisher {
Run Code Online (Sandbox Code Playgroud)

init swift combine

3
推荐指数
1
解决办法
3236
查看次数

gcloud auth登录抛出错误:gcloud崩溃(ConnectionError):HTTPSConnectionPool(host ='oauth2.googleapis.com',port = 443):超出最大重试次数

  1. gcloud builds submit昨天对我来说失败了。
  2. 然后我尝试了一下gcloud config set project,也失败了。
  3. 所以我想登录可能已经过期所以尝试了一下gcloud auth login

在所有情况下,它总是抛出以下错误:

ERROR: gcloud crashed (ConnectionError): HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Max retries exceeded with url: /token (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000198B0B26970>: Failed to establish a new connection: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond'))

If you would like to report this issue, please run …
Run Code Online (Sandbox Code Playgroud)

init google-cloud-platform gcloud google-cloud-sdk

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

在构造之前,在实例上调用非成员函数

我正在上课,这个疑问出现了.这是不是吗?行为?另一方面,我不确定它的推荐,或者它是一个好的做法.如果我确保在init函数中没有抛出异常,那么它是一个吗?

//c.h
class C{

    float vx,vy;
    friend void init(C& c);
public:
    C();

};


//c.cpp
C::C()
{
   init(*this);
}

void init(C& c) //throws() to ensure no exceptions ?
{
  c.vx = 0;
  c.vy = 0;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

c++ init undefined-behavior

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

Spring init和destroy方法

package com.idol;

public class Auditorium {       
Auditorium(){
}  
public void turnOnLights() {  
    System.out.println("Lights are turned on"); 
}  
public void turnOffLights(){  
    System.out.println("Lights are turned off");
}  
Run Code Online (Sandbox Code Playgroud)

}

对于xml上下文,我有:

 <bean id="Auditorium" class="com.idol.Auditorium" init-method="turnOnLights" destroy-method="turnOffLights"/>
Run Code Online (Sandbox Code Playgroud)

测试:

ApplicationContext auditorium =
        new ClassPathXmlApplicationContext("ApplicationContextVer6.xml"); 

auditorium.getBean("Auditorium");
Run Code Online (Sandbox Code Playgroud)

我明白了:

仅打印"灯已打开"并且不打印"灯已关闭".我虽然在破坏bean之前它也应该调用destroy-method,但我错过了什么或没有得到什么?(我在日志中没有错误,以防万一)

谢谢

methods spring init destroy

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

Python只调用__init __()方法一次

有没有办法只调用一次类的init()方法.或者,当我从类创建对象时,如何禁用init()的调用?

python init

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

在继承的ctypes.Structure类的构造函数中调用from_buffer_copy

我有以下代码:

class MyStruct(ctypes.Structure):
      _fields_= [('id', ctypes.uint),
                 ('perm', ctypes.uint)]
Run Code Online (Sandbox Code Playgroud)

定义类后,我可以直接在我的字段上复制缓冲区中的数据.例如:

ms = MyStruct.from_buffer_copy("\xAA\xAA\xAA\xAA\x11\x11\x11\x11")
print ms.id, ms.perm
Run Code Online (Sandbox Code Playgroud)

Everythings工作正常,这里id0xAAAAAAAA,perm等于0x11111111.

现在,我试图在实例化过程中做同样的事情,使用以下代码:

class MyStruct(ctypes.Structure):
      _fields_= [('id', ctypes.uint),
                 ('perm', ctypes.uint)]
      def __init__(self):
          super(MyStruct, self).__init__()
          self.from_buffer_copy("\xAA\xAA\xAA\xAA\x11\x11\x11\x11")

ms = MyStruct()
print ms.id, ms.perm
Run Code Online (Sandbox Code Playgroud)

但我的代码使用以下语句引发错误:

AttributeError:'MyStruct'对象没有属性'from_buffer_copy'

经过一番研究,我发现这from_buffer_copy是一种ctypes._CData方法.在文档中我们可以读到_CData该类是非公共类.

所以这是我的问题.我想from_buffer_copy在构造函数中使用,但此时它看起来"不可调用".你可以帮帮我吗 ?

在此先感谢您的回复问候

PS:我不想使用这个样式,super(MyStruct,self).__init__(id=0x44444444,perm=0x11111111)因为在我的真实代码中我的fields变量有很多参数.

python constructor ctypes init

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

在init.rc中回显

嗨,我想将这些脚本添加到init.rc,但我得到init.rc不支持echo的错误.

echo device > /sys/devices/platform/usbc.0/mode
Run Code Online (Sandbox Code Playgroud)

在init.rc中执行此类操作的正确方法是什么?

android kernel init

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

使用类创建对象,为什么我需要__init __(self,args):?

很抱歉发布这样一个奇怪的问题,通常当我感到困惑时,我只是"随身携带",直到我有一个顿悟,然后将其排除,但def __init__(self):在我的课堂内调用似乎完全是多余的,似乎将它留下来也是如此:

class Pet(object):
    type_of_pet = ""
    number_of_legs = 0
    name = ""
Run Code Online (Sandbox Code Playgroud)

让我创建:

fred = pet()
fred.type_of_pet = "alligator"
Run Code Online (Sandbox Code Playgroud)

就像我要把类更改为:

class Pet(object):
    def __init__(self):
         type_of_pet = ""

alice = Pet()
alice.type_of_pet = "Pterodactyl" 
Run Code Online (Sandbox Code Playgroud)

我只是没有得到我需要的原因__init__,而这里的其他线程并不像我希望的那样清晰.有什么我可以做到这个"点击"?

python class object init

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

从对象内部调用__init __()的效果

我有一个课我想有时"重置".而不是手动清除类中的所有变量以及它使用的所有模块,我认为通过调用init本身来重构它可能是个好主意.我担心的是,我不太确定这是一个好模式,还是GC正在清除旧对象.

一个例子如下:

from modules import SmallClass
from modules import AnotherClass

class BigClass(object):
    def __init__(self, server=None):
        """construct the big class"""
        self.server = server
        self.small_class = SmallClass(self.server)
        self.another_class = AnotherClass(small_class)

    def reset_class(self):
        """reset the big class"""
        self.__init__(self.server)
Run Code Online (Sandbox Code Playgroud)

这会导致问题,还是有更好的方法来解决这个问题?

python constructor garbage-collection init reset

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