Tag: 导入

为什么Python的导入不能像C的#include一样工作?

我一直在试图理解Python导入大约一年了,而且我已经放弃了Python中的编程,因为它看起来似乎太混淆了。 我来自C背景,我认为import就像#include一样,但如果我尝试导入某些东西,我总会得到错误。 如果我有两个这样的文件: foo.py: a = 1 bar.py: import foo print foo.a input() 为什么需要引用模块名称? 为什么不能只编写import foo , print a ? 这种混乱有什么意义? 为什么不运行代码并为您定义的东西,就像您在一个大文件中编写它一样? 为什么它不能像C的#include指令一样工作,它基本上复制和粘贴你的代码? 我在C中没有导入问题

目标c – 导入.m和.h文件 – 它做了什么

在目标c中,当你说#import“MyClass.h”时实际发生了什么? (编译器是否为您复制了什么?) 在MyClass.m文件中,如果我#import “UsefulClass.h” ,这意味着UsefulClass在此文件下可用,我可以创建对象并将消息发送到它的实例。 在myClass.m文件中,我必须#import “MyClass.h” ,这听起来像是将我的实现文件链接到它的标题(称为基本文件?),这与第一个文件的作用完全不同。 那么#import会根据具体情况做两种不同的事情吗? 或者从另一个角度来看它实际上属于一个类别。 .m文件中定义但不在.h文件中定义的方法被视为私有。 从另一个类,我可以以某种方式调用私有方法吗? (比如我#import .m而不是.h?所以类会知道实现文件定义的内容。) objective-c #import和c #include什么区别? 另外@interface MyClass : NSObject在.h文件中使用@interface MyClass : NSObject ,在.m文件中使用@interface MyClass() 。 当你想拥有私有属性时,它只是一种语法格式(如括号)吗? 或者这背后有什么逻辑吗?

#import仍会出现“重复符号”错误

当我编译我的iPhone应用程序时,xCode为MyConstants.h中的变量提供了“重复符号”错误 我想如果我用过: #import “MyConstants.h” 它会避免这种情况吗? 但我仍然有问题。 补充信息: 在“链接”期间发生错误。 (我只是使用xCode的“Build and Go”按钮。) 我也尝试了(不需要#import)#ifndef / def方法。 也许我应该问这个: 如果您需要在所有源代码文件的每个部分中访问常量…您将在.h文件中放置什么? 您将使用什么将该常量包含在代码的其他部分中。 我想(但我猜它不是)它很简单: MyConstants.h> int thisIsGlobal = 123; (不管我在哪里,我都会在任何代码中的任何地方重新定义thisIsGlobal。) 然后在我的其他每个源文件的顶部只添加“#import MyConstants.h”。