我能够从Android中的init脚本(init.rc)开始我自己的服务,遵循以下指南:http://www.androidenea.com/2009/08/init-process-and-initrc.html 或使用https://android.googlesource.com/platform/system/core/+/froyo-release/init/readme.txt上的官方文档
有一个名为"on service-exit- < name >" 的触发器,其中name是在执行此触发器的操作之前必须退出的服务的名称.但是,此触发器似乎不起作用.我启动了一个小的shell脚本作为服务,并相应地创建了触发器,以便之后启动所有剩余的服务.执行我的脚本后,init进程似乎停滞不前,并且没有继续使用剩余的服务.
最终目标是实现类似于受控或"暂存"启动过程,我可以确保首先执行此脚本,然后启动remainingnig服务.我也试图通过使用不同的服务类来实现这一点,但失败了
任何有关该主题的帮助表示赞赏.
我想自动执行每次使用git init命令时所做的一些任务.
我查看了不同的模板,但我甚至不知道是否可以在init之后直接执行脚本.
一个主意 ?
这是一个奇怪的.我遇到过一些情况,我想在__init__python对象的末尾做一些动作.我想把这个动作作为__init__真正的类(叶类)中的最后一件事.如果在自我__init__方法的超类中,我绝对不想这样做.有没有办法做到这一点?我认为这可能是一件愚蠢的事情.但它让我好奇是否以及如何做到这一点.
import pygame
from pygame.locals import *
pygame.init()
class levelClass(object):
def __init__(self, name):
self.name = name
Run Code Online (Sandbox Code Playgroud)
这个窗口的初始名称
def makeWindow(self):
screen = pygame.display.set_mode((800,800))
pygame.display.set_caption(self.name)
def drawName(self):
myfont = pygame.font.SysFont("monospace", 25)
label = myfont.render(self.name, 1, (255,0,0))
screen.blit(label, (400,400))
level = levelClass('Level 0')
while True:
level.__init__()
level.drawName()
level.makeWindow()
for event in pygame.event:
if event.type == QUIT:
pygame.exit()
sys.close()
pygame.display.update()
Run Code Online (Sandbox Code Playgroud)
这将创建一个名为Level 0的窗口并在窗口中写入,但我看到这个错误: init()缺少1个必需的位置参数:'name'
是否可以更改类的init函数中的某些内容?
假设我有一个名为“deck”的类,它在初始化时会创建一个包含 52 个卡片对象的列表。
现在我想创建另一个名为“even”的类,它继承自“deck”类并创建一副纸牌对象,但从继承的“deck”中消除所有数字为 2(如黑桃、红心等)的纸牌。
我在这方面遇到了很多麻烦,因为当我尝试修改继承的列表时,无论我尝试什么,python 都会返回错误,通常“NoneType”是问题的主要根源。这是“偶数”类初始化的代码:
def __init__(self):
x = Deck.__init__(self)
for card in x:
if card.rank() == 2:
x.pop(card)
return x
Run Code Online (Sandbox Code Playgroud)
值得注意的是,我的卡片类有一个 rank() 方法,它将以 int 形式返回卡片的等级。
不管我尝试过所有的事情,它总是有问题。有时它会说“'NoneType' 对象不可迭代”或“可订阅”,当我检查 x 的 type() 时,它是一个 NoneType。我已经做了很多搜索,但对我来说 NoneType 或我应该做些什么来解决它没有任何意义。
如果我删除 for 循环,那么代码将按预期创建一副 52 张卡片,但例如我需要过滤掉 2 张卡片。
编辑:这是我的甲板类init:
class Deck(list):
def __init__(self):
return list.__init__(self, [Card(i) for i in range(52)])
Run Code Online (Sandbox Code Playgroud)
如果你不知道, Card 也是一个类,deck的初始化创建了 52 个卡片对象
有时,在一个类中,我想__init__,当传递给它时,例如错误的参数,不要实例化对象.解决方案可能是引发异常(哪一个?).还有其他想法吗?
我有一个 jMeter 项目,我正在处理它引发了各种各样的问题。主要是由于整个运行过程中变量数据的存储和范围界定。
我现在有很多工作,我正在使用 Beanshell 共享哈希图来存储运行中的数据。由于我这样做的方式,我不需要担心线程安全。
它可以工作,但是每次线程组运行时它都会重新初始化自己。尽管将初始化步骤放在所有线程组之外。
因此,据我所知,解决方案是将所有启动数据放入一个仅在启动时运行一次的初始化文件中。但我不知道我该怎么做?我已将之前使用的 Beanshell 预处理器中的代码复制到“.bshrc”文件中,并使用“.bshrc”文件的位置更新了 jMeter 属性文件,但它似乎不起作用。它实际上似乎没有做任何事情。当我运行测试时,不存在任何值,一切都失败了。
我试过使用:
beanshell.init.file=../bin/data.bshrc 和 beanshell.preprocessor.init=../bin/data.bshrc
我试图找到一些白痴指南来设置初始化文件,但我找不到任何有用的东西。这是我第一次认真地使用 Beanshell,而我的 Java 知识充其量也非常有限!
目前,我通过在启用原始 Beanshell 预处理器的情况下运行一次测试来解决它。这会设置哈希映射,并且它们从那时起就驻留在内存中。我停止此运行,禁用预处理器,所有后续运行都可以正常工作。
任何人?
我正在尝试name从继承自 Person 的 Indicator 类访问变量。但是,我相信我没有正确进行初始化。
我得到以下信息:“错误:实例成员“名称”不能用于“指标”类型。
class Person {
var name: String
init(myName: String){
self.name = myName
}
deinit {
Indicator.letKnowPersonDeinitialized()
}
}
class Indicator: Person {
convenience init() {
self.init()
}
static func letKnowPersonDeinitialized() {
print("\(name)")
}
}
Run Code Online (Sandbox Code Playgroud) 我觉得我对__name__python中的环境变量有一个很好的了解。但是,当我__name__从__init__.py中打印出变量时,它会打印出其所在目录的名称(即软件包名称)。如何__name__在初始化文件中定义?
另外,每个python文件都有自己的局部__name__变量吗?因为它在文件之间不断变化...(也许我不太了解__name__,也没有想到)
编辑:我真的不认为这个问题与名称等于主要问题相同。我了解在大多数python文件中什么叫名字。我只是对init文件中的值感到困惑。
我想安排一个在初始化后不会改变的值。
我会使用const,但是Go将const限制为内置类型IIUC。
所以我想我会使用var,并计算它们的初始值init()
var (
// ScreenBounds is the visible screen
ScreenBounds types.Rectangle
// BoardBounds is the total board space
BoardBounds types.Rectangle
)
func init() {
ScreenBounds := types.RectFromPointSize(
types.Pt(-ScreenWidth/2, 0),
types.Pt(ScreenWidth, ScreenHeight))
BoardBounds := ScreenBounds
BoardBounds.Max.Y += TankSpeed * TotalFrames
}
Run Code Online (Sandbox Code Playgroud)
哪一个非常好-但是除了将vars更改为未导出的名称,然后使用函数访问器返回其值之外,是否有一种方法可以“锁定”计算后的值?