在设计类层次结构时,有时子类添加了一个新的initWithSomeNewParam方法,最好禁用对从父类(superclass)继承的旧init方法的调用.首先,我已经阅读了here的问题。,其中建议的替代方案是覆盖init以在运行时引发异常,或者覆盖并设置属性的默认值。就我而言,我不想提供默认值,我想明确指出不应该调用旧方法,而应该使用带参数的新方法。所以运行时异常是可以的,但除非调试代码,否则团队中的其他程序员无法注意到不再使用旧方法。如果我是正确的,没有办法将方法标记为“私有(private)”。那么,除了添加评论之外,有没有办法做到这一点?提前致谢。
这个问题在这里已经有了答案:Useofallocinitinsteadofnew(8个回答)关闭9年前。一本关于iPhone编程的书实例化了这样的类:[[Classalloc]init]另一本关于Objective-C的书是这样写的:[Classnew]有什么区别? 最佳答案 +new在字面上实现为:+(id)new{return[[selfalloc]init];}不多也不少。类可能会覆盖它,但这是非常不典型的,有利于执行+fooWithBar:之类的操作。 关于objective-c
假设我有一个类,它有一个名为data的成员,它是一个列表。我希望能够使用例如文件名(其中包含用于初始化列表的数据)或实际列表来初始化类。你的技术是什么?你只是通过查看__class__来检查类型吗?我可能会遗漏一些技巧吗?我习惯了C++中的参数类型重载很容易。 最佳答案 获得“替代构造函数”的一种更简洁的方法是使用类方法。例如:>>>classMyData:...def__init__(self,data):..."InitializeMyDatafromasequence"...self.data=data......@class
我正在尝试关注PEP328,目录结构如下:pkg/__init__.pycomponents/core.py__init__.pytests/core_test.py__init__.py在core_test.py我有以下导入语句from..components.coreimportGameLoopEvents但是,当我运行时,我收到以下错误:tests$pythoncore_test.pyTraceback(mostrecentcalllast):File"core_test.py",line3,infrom..components.coreimportGameLoopEventsV
这个问题在这里已经有了答案:Whatisthepurposeofthe`self`parameter?Whyisitneeded?(26个回答)Whydoweuse__init__inPythonclasses?(8个回答)关闭2个月前。我正在学习Python编程语言,但遇到了一些我不完全理解的东西。在这样的方法中:defmethod(self,blah):def__init__(?):........self是做什么的?它是什么意思?是强制性的吗?__init__方法有什么作用?为什么有必要?(等等)我认为它们可能是OOP构造,但我不太了解。 最佳答案
如果我使用print_r或var_dump它会在屏幕上显示结果,但我希望将此数据存储在变量中以便我可以将其写入一个文件。我该怎么做? 最佳答案 $var=print_r($what,true);您必须在print_r中添加true. 关于php-将print_r结果作为字符串或文本存储到变量中,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9325067/
var_dump、var_export和print_r有什么区别? 最佳答案 var_dump用于调试目的。var_dump总是打印结果。//var_dump(array('',false,42,array('42')));array(4){[0]=>string(0)""[1]=>bool(false)[2]=>int(42)[3]=>array(1){[0]=>string(2)"42")}}print_r也用于调试目的,但不包括成员的类型。如果您知道数组中元素的类型,那么使用它是一个好主意,但否则可能会产生误导。print_r
我经常使用echo和print_r,几乎从不使用print。感觉echo是宏,print_r是var_dump的别名。但这不是解释差异的标准方式。 最佳答案 print和echo差不多;它们都是显示字符串的语言结构。区别很细微:print的返回值为1,因此可以在表达式中使用,而echo的返回类型为void;echo可以带多个参数,尽管这种用法很少见;echoisslightlyfasterthanprint.(就我个人而言,我总是使用echo,从不使用print。)var_dump打印出变量的详细转储,包括其类型和任何子项的类型(如
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Reference:ComparingPHP'sprintandecho这两个函数在PHP中是否有任何主要和根本的区别? 最佳答案 来自:http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40速度。两者之间有区别,但速度方面应该与您使用哪个无关。echo稍微快一点因为如果您真的想深入了解它,它不会设置返回值细节。表达式
var_dump()和print_r()在将数组作为字符串输出方面有什么区别? 最佳答案 var_dump函数显示有关变量/表达式的结构化信息,包括其类型和值。使用缩进显示结构的值递归地探索数组。它还显示了哪些数组值和对象属性是引用。print_r()以人类可读的方式显示有关变量的信息。数组值将以显示keys和elements的格式呈现。类似的符号用于对象。示例:$obj=(object)array('qualitypoint','technologies','India');var_dump($obj)将在屏幕输出下方显示。obj