我已经完成了一些阅读,并且无法像我想的那样完全掌握这一点.我正在从LPTHW教程中做一些"选择你自己的冒险"游戏,这里是完整的脚本:http://codepad.org/YWVUlHnU
我不明白的是以下内容:
class Game(object):
def __init__(self, start):
self.quips = [
"You died. Please try again.",
"You lost, better luck next time.",
"Things didn't work out well. You'll need to start over."
"You might need to improve your skills. Try again."
]
self.start = start
Run Code Online (Sandbox Code Playgroud)
我知道我们正在创建一个类,但为什么要定义__init__?后来我做了类似print self.quis[randint(0, len(self.quips)-1)]打印四个字符串中的一个的东西quips,但为什么我不会创建一个叫做的函数quips呢?
当我们需要创建一个对象并获得它的所有权时,我们会写
NSObject *someObject = [[NSObject alloc] init];
Run Code Online (Sandbox Code Playgroud)
之后,someObject保留计数将等于1.哪种方法会增加计数,alloc或者init,在Apple的文档中,这种行为的描述是什么?
在将一个编码非常糟糕的iOS项目移植到OS X的过程中,我在其中保留了模型层,以便(稍后)能够保持两个版本同步.
我目前无权更改iOS代码库 - 也不特别想要.此外,对于所有故障,模型层都经过测试和工作.
他们说,如果没有破产,就不要修理它.所以我想我的问题是,是下面的代码破坏或没有?注意,init之后没有调用alloc,并且实例化的类是直接子类NSObject.
...
SuspectClass *obj = [SuspectClass alloc];
obj.arrayProperty = [NSArray arrayWith...];
// etc.
...
Run Code Online (Sandbox Code Playgroud)
我想另一个办法把问题是,如果NSObject的init实际上增加了什么对象?
我有一个pxe服务器,它托管Ubuntu 12.04的实时图像,我想在其上启用VNC.
通常我会使用以下命令执行此操作:
$ gsettings设置org.gnome.Vino启用true
但是,由于这个实时操作系统存在于RAM中,因此每次都需要在启动时执行此操作.问题是由于某种原因,它不适用于/etc/init.d /中的脚本...对于我的生活,我无法弄清楚为什么gsettings在这种情况下不起作用..
作为参考,这是我在/etc/init.d中使用的脚本:
#!/bin/bash
log=/var/log/gsettings.log
#Needed for some reason.. received info from http://stackoverflow.com/questions/10374520/gsettings-with-cron
sessionfile=`find "${HOME}/.dbus/session-bus/" -type f`
export $(grep "DBUS_SESSION_BUS_ADDRESS" "${sessionfile}" | sed '/^#/d')
set_gsettings()
{
echo "Inside set_gsettings" >> $log
#Enable vino
gsettings set org.gnome.Vino enabled true 2>&1 >> $log
gsettings set org.gnome.Vino prompt-enabled false 2>&1 >> $log
}
case "$1" in
start)
echo "Inside IT-gsettings" >> $log
set_gsettings
;;
restart|reload|force-reload)
/etc/init.d/IT-gsettings start
;;
stop)
:
;;
*)
log_success_msg "Usage: /etc/init.d/IT-gsettings {start|stop|restart|reload|force-reload}"
exit 1 …Run Code Online (Sandbox Code Playgroud) 我有TinyMCE的,当我把麻烦<script type="text/javascript" src="/scripts/tiny_mce/tiny_mce.js">来<head>,并把初始化代码之前<textarea class="tinyMceEditor">,它工作正常.init代码是这样的:
tinyMCE.init({
mode : "specific_textareas",
editor_selector : "tinyMceEditor",
plugins : "inlinepopups,advlink",
convert_urls : false,
theme : "advanced",
theme_advanced_buttons1 : "link,unlink",
width: "602",
height: "175",
theme_advanced_statusbar_location : "none"});
Run Code Online (Sandbox Code Playgroud)
但是现在,我想推迟加载tiny_mce.js,当用户第一次点击一个按钮时,将加载tiny_mce.js,然后追加<textarea class="tinyMceEditor">到<body>,然后使用前面的代码执行init工作,但是这个时间,它不会初始化tinyMCE编辑器,它只显示<textarea class="tinyMceEditor">
谷歌搜索,但没有发现与此有关,任何人都遇到了这个问题?
任何建议将不胜感激.
我查看了chrome web开发人员工具,发现如果我动态加载tinymce.js,其他需要的js,如en.js,editor_template.js,editor_plugin.js等将不会被加载.即使我将这些js文件添加到动态加载中,仍然无法使用tinymce.
感谢您的帮助,我看着萤火虫,我也得到追加载入前tinymce.js <textarea来<body>,然后我追加<textarea>,做TinyMCE的init(),我使用LazyLoad(jQuery插件)来动态加载js文件.
这就是我所做的
if(typeof TinyMCE == "undefined"){
//dynamically load the tinymce.js
LazyLoad(['tinymce.js'],function(){
//callback function, called after tinymce is loaded
$('body').append('<textarea class="TinyMceEditor"/>');
tinyMCE.init({init settings});
});
} …Run Code Online (Sandbox Code Playgroud) 我的小组目前正在与Lua合作,创建一款安卓游戏.我们遇到的一件事是无法创建重载构造函数.
我习惯于使用默认值设置对象,然后在需要时会过载.
例如:
apples()
{
taste="yum";
amount = 0;
}
apples(string taste, int num)
{
taste=taste;
amount=num;
}
Run Code Online (Sandbox Code Playgroud)
但是,由于无法做到这一点,我们将这些lare if/else部分用于初始化,如下所示
if velX ~= nil then
self.velX = velX
else
self.velX = 0
end
if velY ~= nil then
self.velY = velY
else
self.velY = 0
end
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法在Lua中设置它?
嘿我有一个以下问题,我需要打开一个文件__init__(),并且check我需要检查该文件的行中的字符串/数字是否相同.如果它们不是它应该返回,True如果它们应该返回False,并且如果没有更多的线None.我不知道文件中会有多少行.我的代码工作正常,测试人员给我90%,但它说我不关闭文件,我明白为什么它说,但不知道在哪里放近.但是,如果我打开它with应该工作,但我不知道如何让它以这种方式工作.
我的代码:
class Program:
def __init__(self, file_name):
self.t = open(file_name, 'r')
def check(self):
row = self.t.readline()
array = []
for i in row.split():
if i not in array:
array.append(i)
if row.split() == []:
return None
elif array == row.split():
return True
else:
return False
"""
#testing
if __name__ == '__main__':
u = Program('file.txt')
z = True
while z is not None:
z = u.check()
print(z)
"""
Run Code Online (Sandbox Code Playgroud)
示例文件:
15 …Run Code Online (Sandbox Code Playgroud) 试图通过Android上的init.rc启动服务.
service name_of_my_service /path/to/my/service
user root
Run Code Online (Sandbox Code Playgroud)
收到以下错误:
init:无效的服务名称name_of_my_service
为什么我可以写这个:
class VoiceManager
{
public:
static const int mMaxNumOfVoices = 16;
Voice mVoices[mMaxNumOfVoices];
private:
};
Run Code Online (Sandbox Code Playgroud)
但我不能用这个:
class VoiceManager
{
public:
const int mMaxNumOfVoices = 16;
Voice mVoices[mMaxNumOfVoices];
private:
};
Run Code Online (Sandbox Code Playgroud)
它说:" 非静态成员引用必须与特定对象相关 "
但在这两种情况下,mMaxNumOfVoices是一个const并且将在init之前mVoices初始化(编译器遵循声明顺序,没有?).
但它需要static.为什么?
我相对来说是python的新手,我想知道你是否可以在不定义init明确的情况下创建一个类的实例.我可以称之为其他吗?
第一个例子 - 使用init方法:
class dog:
def __init__(self,name):
self.name=name
print('My name is',name)
Bob = dog('Bob')
Run Code Online (Sandbox Code Playgroud)
第二个例子 - 没有init方法:
class dog:
def init_instance(self,name):
self.name = name
print('My name is',name)
Bob = dog('Bob')
Run Code Online (Sandbox Code Playgroud)
在第一个例子中,代码有效,但在第二个例子中,我得到:
TypeError:object()不带参数
所以基于此我假设必须显式调用init方法.但是我看过没有使用过init方法的代码,为什么会这样?
init ×10
python ×3
objective-c ×2
alloc ×1
android ×1
c++ ×1
class ×1
cocoa ×1
cocoa-touch ×1
const ×1
file ×1
gnome ×1
linux ×1
lua ×1
nsobject ×1
overloading ×1
retaincount ×1
service ×1
static ×1
tinymce ×1
ubuntu ×1
ubuntu-12.04 ×1