我使用的是Python 3.5.1.我在这里阅读了文档和包部分:https://docs.python.org/3/tutorial/modules.html#packages
现在,我有以下结构:
/home/wujek/Playground/a/b/module.py
Run Code Online (Sandbox Code Playgroud)
module.py:
class Foo:
def __init__(self):
print('initializing Foo')
Run Code Online (Sandbox Code Playgroud)
现在,在/home/wujek/Playground:
~/Playground $ python3
>>> import a.b.module
>>> a.b.module.Foo()
initializing Foo
<a.b.module.Foo object at 0x100a8f0b8>
Run Code Online (Sandbox Code Playgroud)
同样,现在在家里,超级文件夹Playground:
~ $ PYTHONPATH=Playground python3
>>> import a.b.module
>>> a.b.module.Foo()
initializing Foo
<a.b.module.Foo object at 0x10a5fee10>
Run Code Online (Sandbox Code Playgroud)
实际上,我可以做各种各样的事情:
~ $ PYTHONPATH=Playground python3
>>> import a
>>> import a.b
>>> import Playground.a.b
Run Code Online (Sandbox Code Playgroud)
为什么这样做?我虽然有被需要的__init__.py文件(空的都可以)两种a,并b为module.py要导入的时候Python的路径指向Playground文件夹?
这似乎已经从Python 2.7改变了:
~ $ PYTHONPATH=Playground …Run Code Online (Sandbox Code Playgroud) 由于新的支持库版本(22.x暂时)的getPosition()的方法RecyclerView.ViewHolder类已被否决代替的主题中提到的方法.我并没有真正理解阅读文档.有人可以解释外行人的条款差异吗?
我有以下用例 - 我给我的适配器a List,并且还希望能够为每个列表项关联额外信息.我有一个位置到额外的映射,并且映射可供持有者使用,以便他们可以获取额外的位置并用它做事.在持有人中,我应该使用哪种方法?
当指数0和1的列表项切换位置时,持有者位置会发生什么?这些方法返回了什么?
我正在使用Xcode6-beta2,但自第一次公开测试版以来,我遇到了同样的问题.Obj-C UIViewController的My Swift子类如下所示:
class SomeVC: UIViewController {
var c1: () -> () = {
println(self)
}
var c2: () -> () {
get {
return { println(self) }
}
}
var c3: () -> () {
return { println(self) }
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
c1()
c2()
c3()
}
}
Run Code Online (Sandbox Code Playgroud)
显示VC时,我看到打印出以下行:
(Function)
<_TtC12SwiftiOSTest6SomeVC: 0x10bf1ed10>
<_TtC12SwiftiOSTest6SomeVC: 0x10bf1ed10>
Run Code Online (Sandbox Code Playgroud)
(c2和c3的不同之处仅在于,如果计算属性只能获取,则不必包含get {...}.)
所以,第一个闭包的自我似乎是指函数/闭包类型本身,而其他的自我指的是视图控制器(正如我所料).c1和c2/c3之间的唯一区别是前者是存储属性,后者是计算属性,但我仍然期望闭包和它们捕获的值是相同的,即self总是引用封闭类.现在的方式,c1闭包似乎没有明显的方法来访问封闭类的方法/属性.
这是在某处记录的(我阅读了Swift书并没有找到任何内容),或者它只是某种类型的beta编译器错误,应该在某处提交?
我有一个变量名循环,我需要检查该名称指向的变量是否是一个数组.我试图谷歌,但没有找到任何东西.有帮助吗?
for varname in AA BB CC; do
local val
if [ "$varname" is array ]; then # how can I perform this test?
echo do something with an array
else
echo do something with a "'normal'" variable
fi
done
Run Code Online (Sandbox Code Playgroud) 有一个类看起来像这样(我为了简洁省略了导入):
Base.h:
@interface Base : NSObject
@property (strong, readonly) NSString *something;
- (id)initWithSomething:(NSString *)something;
@end
Run Code Online (Sandbox Code Playgroud)
Base.m:
@implementation Base
- (id)initWithSomething:(NSString *)something {
self = [super init];
if (self) _something = something;
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
如你所见,'something'属性是readonly.现在我想创建一个子类来覆盖该属性也是可写的:
Sub.h:
@interface Sub : Base
@property (strong) NSString *something;
@end
Run Code Online (Sandbox Code Playgroud)
Sub.m:
@implementation Sub
@end
Run Code Online (Sandbox Code Playgroud)
和代码:
main.c中:
int main(int argc, const char * argv[]) {
@autoreleasepool {
Sub *o = [Sub new];
o.something = @"foo";
NSLog(@"%@", o.something);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码导致:
2013-09-07 13:58:36.970 ClilTest[3094:303] …Run Code Online (Sandbox Code Playgroud) 我在API 22上使用Android设计库.我想:
这甚至可能吗?我有嫁给#2和#3的问题.现在的方式是工具栏总是在抽屉布局上方,覆盖回收器中的第一个条目,以及左抽屉的顶部.这是我的布局文件(不完整,但显示我的结构):
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"/>
</android.support.v4.widget.DrawerLayout>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Toolbar
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
看起来虽然RecyclerView的app:layout_behavior ="@ string/appbar_scrolling_view_behavior"设置没有效果,因为删除时,行为是相同的.
我尝试将RelativeLayout作为CoordinatorLayout的子项添加,以定义抽屉位于工具栏等下方,但似乎没有任何效果.
我正在努力实现库的可能性吗?
我有以下用例(这当然是一个人为的例子,但是一旦我知道了答案,我就能将它移植到我要解决的真正问题):
这是我目前的代码:
Observable
.from(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12))
.groupBy(item -> item % 4)
.subscribe(groupedObservable -> {
groupedObservable
.toList()
.filter(list -> list.size() > 2)
.subscribe(result -> {
System.out.printf("%d results %s%n", result.size(), result);
});
});
Run Code Online (Sandbox Code Playgroud)
它的输出是:
4 results [0, 4, 8, 12]
3 results [2, 6, 10]
3 results [3, 7, 11]
Run Code Online (Sandbox Code Playgroud)
因此,它打印出每个组有多少元素,然后打印元素列表.我希望输出(我实际上不关心键):
3结果:[[0,4,8,12],[2,6,10],[3,7,11]]
即以某种方式将分组的可观察量展平为一个列表.我没有这样做.例如,.flatMap(integers -> Observable.just(integers))在filter不改变任何内容之后添加,因为它只影响每个分组的可观察对象,而不是整个流.有没有办法满足我的要求?
我的min和target sdk是21,我没有使用支持库.
我正在使用新的工具栏小部件,通常它可以工作,我只是看起来有一个小故障.动作图标以纵向模式居中,而横向模式中的工具栏较高,图标不居中.请看一下截图(读取行只是为了让问题更加明显):


这可能看起来没什么,但是当选择动作时(如条形图左侧的"向上"箭头),结果是可以看到它下方几个像素的条带.我不喜欢它的样子.
活动本身不管理任何配置更改.
这是我的代码:
styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme.Material.NoActionBar">
<item name="android:toolbarStyle">@style/MyToolbarStyle</item>
</style>
<style name="MyToolbarStyle" parent="android:Widget.Toolbar">
<item name="android:background">?android:attr/colorPrimary</item>
<item name="android:elevation">2dp</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)XML用法:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.test.TestActivity">
<Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)我尝试使用android:minHeight属性,但是设置为30dp只是将图标向上移动,也是在纵向模式下.
我找到了这个:https://code.google.com/p/android/issues/detail ?id = 77874但是没有?attr/actionBarSize ...
如果可以解决这个问题怎么办呢?拍摄屏幕截图的手机是Nexus 6(xxxhdpi),图标来自谷歌图标包,最大的资源是xxhdpi.这是问题吗?
更新:当我使用?android:attr/actionBarSize时,上述链接的解决方法确实有效.但是,这是唯一的方法吗?看起来有点不对,需要这样的解决方法来处理像这样的新闪亮组件,甚至更多,以便解决方法需要一个组件的属性值替换为新组件.
我有以下布局:抽屉,主内容视图有AppBarLayout,RecyclerView和TextView.滚动回收器时,工具栏被正确隐藏.
但是,我有一个用例:当删除回收器中的所有项目时,我将其可见性设置为"已消失",并将TextView设置为显示相应的消息.如果在隐藏工具栏时完成此操作,则用户无法再次看到工具栏.
是否可以以编程方式使工具栏完全显示?每当显示TextView而不是RecyclerView时,我都会这样做.
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"/>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/test_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<TextView
android:id="@+id/empty_test_list_info_label"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:padding="@dimen/spacing_big"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone"/>
</android.support.design.widget.CoordinatorLayout>
<RelativeLayout
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="?android:attr/windowBackground"
android:elevation="10dp"/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
顺便说一句,出于某种原因,如果我将AppBarLayour放在RecyclerView之后,就像所有教程似乎都显示它一样,它会隐藏列表中最顶层的项目.它只在它上面时才能正常工作.
我的用例是:我得到一个永久链接列表,并且需要每个永久链接发出两个REST请求以获取部分数据.当两个请求都回来时,我想将它们的信息合并在一起并对它做一些事情(这里 - 打印出来).我想用代码使用zip运算符来完成它.这是我当前的代码(以及我正在使用的库的模拟):
public class Main {
public static void main(String[] args) {
ContentManager cm = new ContentManager();
Observable
.from(cm.getPermalinks(10))
.flatMap(permalink -> Observable.zip(
Observable.<Content>create(subscriber -> cm.getDataByPermalink(permalink, new SubscribingRestCallback(subscriber))),
Observable.<Content>create(subscriber -> cm.getStreamByPermalink(permalink, new SubscribingRestCallback(subscriber))),
(dataContent, streamUrlContent) -> {
if (dataContent == null || streamUrlContent == null) {
System.err.println("not zipping " + dataContent + " and " + streamUrlContent);
return Observable.empty();
}
return new Content(dataContent.permalink, dataContent.logoUrl, streamUrlContent.streamUrl);
}))
.subscribe(System.out::println);
}
}
class SubscribingRestCallback implements RestCallback {
private final Subscriber<? super …Run Code Online (Sandbox Code Playgroud) android ×4
rx-java ×2
arrays ×1
bash ×1
objective-c ×1
package ×1
properties ×1
python ×1
python-3.x ×1
swift ×1