小编Lee*_*fin的帖子

在python中写入文件

我可能会问一个愚蠢的问题.我刚开始学习Python.

我有一个简单的python脚本,它用两个方法定义了一个类:add_coursewrite_to_file:

class School:
    courses=["Math","Physics","Chemical"]

    def __init__(self):
        return

    def add_course(self, course):
        if course not in self.course:
           self.course.append(course)

    def write_to_file():
        course_file = open('courses.csv', 'w+')
        wr = csv.writer(course_file, delimiter='\t')
        writer.writerow(self.courses)

// create a School instance
school = School()

// add course
school.add_course("test")
school.add_course("test2")
school.add_course("test")

// write course to file
school.write_to_file()
Run Code Online (Sandbox Code Playgroud)

我运行上面的脚本,然后,我打开courses.csv文件,我没有看到"test"和"test2",但我可以看到"Math","Physics","Chemical"等课程为什么?

python csv python-2.7 export-to-csv

0
推荐指数
1
解决办法
1094
查看次数

AWS Ruby SDK,检查密钥是否存在总是给出“false”

在AWS S3中,我有一个名为 的存储桶my-bucket,我正在使用AWS Ruby SDK来访问我的存储桶。

my-bucket我在S3中有以下目录结构(我知道它在S3中不称为“目录”,只是为了展示这个想法):

my-bucket/
    customers/
         products/
              - data1.txt
              - data2.txt
              ...
Run Code Online (Sandbox Code Playgroud)

我想检查my-bucket/customers/productsAWS Ruby SDK 是否存在,我尝试了以下代码:

s3 = Aws::S3::Resource.new
bucket = s3.bucket("my-bucket")
result = bucket.object("customers/products").exists?
Run Code Online (Sandbox Code Playgroud)

但是resultfalse即使我在 S3 中有该目录,我哪里错了?

ruby amazon-s3 amazon-web-services

0
推荐指数
1
解决办法
916
查看次数

在我的情况下如何检查两个参数的条件

假设我有一个带有两个可选参数的闭包:

(data: MyData?, error: Error?) in 
  // I want to safely unwrap data & make sure error is nil
  if let data = data, let error== nil {
  } 
Run Code Online (Sandbox Code Playgroud)

if上面的条件给我错误:Variable binding in a condition requires an initializer.

我知道我可能在let error==nil部分使用了错误的语法.但是,进行条件检查的正确方法是什么?

swift

0
推荐指数
1
解决办法
96
查看次数

在我的情况下,setter private 和 getter public

我有一个带有一个自定义对象变量的类Student

public class School {

  private var _stu: Student?

  public var student:Student? {
     get {
        return self._stu
     }
     set {
        self._stu = newValue
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

这捆绑在我的 iOS 框架项目中。

我的问题是,如何使student's setter私有,只允许getter公开?(想象有另一个使用我的框架的 iOS 项目)

====== 更新 ====

我试过

public private(set) var student {
   // getter & setter
   ...
}
Run Code Online (Sandbox Code Playgroud)

然而它不符合我的需要。我需要的是:

1.在使用我的框架的其他 iOS 项目中无法访问 setter。上面的代码适用于此。

2.在我的框架项目中,另一个类仍然可以访问setter。上面的代码不适用于此

是否有可能满足我的需求?

swift

-1
推荐指数
1
解决办法
1013
查看次数

声明不能标记为'静态',为什么

我有一个School结构:

public structure School {
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后,我有一个扩展名,我在其中声明一个静态枚举:

extension School {
  // Compiler error: Declaration cannot be marked 'static'
  static enum Level: String {
     case Middle = "middle"
  }
}
Run Code Online (Sandbox Code Playgroud)

但是我在上面的评论中提到了编译器错误,如何在扩展中声明静态枚举呢?

enums swift

-1
推荐指数
1
解决办法
543
查看次数

"=="vs"equal(Object obj)"

我能理解之间的差异==,并object.equal(Object obj)以下列方式?:

这是object.equal(Object obj)回报true,如果两个对象是相同的.而==返回true如果两个类型的两个对象是相同的.

java

-2
推荐指数
1
解决办法
211
查看次数

人<人>,什么是<人>?

我从git仓库克隆了一个iOS项目.该项目是用Objective-C编写的.

我在头文件中看到了这段代码:

@interface Employee: Person<Person> {
   ...
}
Run Code Online (Sandbox Code Playgroud)

什么Person <Person>意思?我知道它表明它Employee是一个子类,Person但具有什么特殊含义<Person>

objective-c ios

-3
推荐指数
1
解决办法
107
查看次数