小编khe*_*ood的帖子

在注释中使用@hide隐藏方法/类

我正在开发一个用于android的库(jar),我遇到的情况是我希望我的类或方法只能在我的库中访问,但不能在我的库之外访问.使用no修饰符将使该类在该包中可访问,但我处于这样一种情况:如果没有public修饰符则不能使用此类,因为使用no修饰符将使其在我不想要的其他包中不可访问.例如,我有一个班级说,

public class Globals {

    public static String thisDeviceAddress;
    public static String thisDeviceIP;
    public static String thisDeviceName = "";

}
Run Code Online (Sandbox Code Playgroud)

这个课程随处可见.问题是我希望它可以在我正在开发的库中访问,但不能在库外部访问.我已经知道使用注释@hide将解决问题.例如:

/**
 * @hide
 */
class Globals {

    public static String thisDeviceAddress;
    public static String thisDeviceIP;
    public static String thisDeviceName = "";
}
Run Code Online (Sandbox Code Playgroud)

我用Google搜索了很多,但找不到实施的方法@hide.只是在@hide没有图书馆的情况下使用并没有隐藏课程.所以,请给我适当的指导.任何要使用的库?任何出路来解决这个问题?

java documentation android annotations hide

7
推荐指数
1
解决办法
1489
查看次数

尝试调用def时,我得到:参数'self'未填写

我正在尝试编写一个类来从字典中随机选择一些歌曲。整个要点是能够简单地键入DJ.chooseListing()例如执行随机选择的内容。las,这给了我一个我在网上找不到的错误,我觉得答案很简单。

class DJ:
     # put song variables here in this format: trackName = Track("string of song to be displayed", 'music/filename.ogg')
     trackRickAstleyNever = Track("Never gonna give you up", 'music/rick.ogg')
     trackShootingStars = Track("Shooting Stars", 'music/shoot.ogg')

     dictSongs = {
         # put songs here like this: 'name': varName,
         'nevergonnagiveyouup': trackRickAstleyNever,
         'shootingstars': trackShootingStars,

     }
     """
     arrayRandomized = [
         # Put future songs here in this format: songs['name'],
     ]
     """
     arrayChosen = []
     trackChosen = ""

     def chooseListing(self):
         for i in xrange(4):
             self.arrayChosen.append(random.choice(self.dictSongs))

     def …
Run Code Online (Sandbox Code Playgroud)

oop class self python-2.7

7
推荐指数
1
解决办法
1万
查看次数

什么是scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?"); 做?

scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
Run Code Online (Sandbox Code Playgroud)

我知道,scanner.skip()但我不知道上面这行到底是做什么的。我在很多程序中都看到过,但我不知道到底发生了什么。有人能帮我吗?

java java.util.scanner

7
推荐指数
0
解决办法
2万
查看次数

语音识别 UnknownValueError

我已经在 python shell 3.5.8 上试过了

import speech_recognition as sr
import webbrowser as wb

chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe 
%s'


# obtain audio from the microphone  
r = sr.Recognizer()  
with sr.Microphone() as source:  
   print("Please wait. Calibrating microphone...")  
   # listen for 5 seconds and create the ambient noise energy level  
   r.adjust_for_ambient_noise(source, duration=5)  
   print("Say something!")  
   audio = r.listen(source)  

# recognize speech 
try:
    text = r.recognize_google(audio)
    print("I thinks you said '" + r.recognize_google(audio) + "'")

    f_text='https://www.google.co.in/search?q=' + text
    wb.get(chrome_path).open(f_text)
#except sr.UnknownValueError:  
#  print("I could …
Run Code Online (Sandbox Code Playgroud)

python

7
推荐指数
1
解决办法
8237
查看次数

加错答案

public class Container {
    private int value;
    public Container(int value){
        this.value=value;
    }
    public int getValue(){
        return this.value;
    }
    public int sum(Container c){
        return this.value+c.getValue();
    }
    public void main(){
        Container c1=new Container(1);
        Container c2=new Container(2);
        System.out.println("sum: " + c1.getValue()+c2.getValue());
        System.out.println("sum: " + c1.sum(c2));
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我得到以下结果:

public class Container {
    private int value;
    public Container(int value){
        this.value=value;
    }
    public int getValue(){
        return this.value;
    }
    public int sum(Container c){
        return this.value+c.getValue();
    }
    public void main(){
        Container c1=new Container(1);
        Container c2=new Container(2);
        System.out.println("sum: …
Run Code Online (Sandbox Code Playgroud)

java oop object

7
推荐指数
1
解决办法
52
查看次数

同时使用 Python f-strings 和 Jinja

我正在尝试用 Python 编写一个简洁的 SQL 查询字符串,以同时使用 f-strings 和 Jinja。
背景信息:我正在编写一个在 Airflow 中使用的查询。

这不起作用:

query_string = f"""
        SELECT
            COUNT(DISTINCT case_id) AS counts
        FROM
            `{{var.value.gcp_project}}.{{var.value.dataset_prefix}}user.person`
        WHERE
            identified_on = PARSE_DATE('%Y-%m-%d', '{YESTERDAY_DATE_STR}')
           """
Run Code Online (Sandbox Code Playgroud)

它产生的查询字符串为:

SELECT
    COUNT(DISTINCT case_id) AS counts
FROM
    `{var.value.gcp_project}.{var.value.dataset_prefix}user.person`
WHERE
    identified_on = PARSE_DATE('%Y-%m-%d', '2020-09-07')
Run Code Online (Sandbox Code Playgroud)

所以它做了 f-string 值替换而不是 Jinja。

如何让 f-strings 和 Jinja 同时工作?

python jinja2 python-3.x

7
推荐指数
1
解决办法
2181
查看次数

Python 中的正确终结

我有很多实例,每个实例都有一个唯一的临时文件供其使用(将数据从内存保存到磁盘并稍后检索它们)。

我想确保最终所有这些文件都被删除。然而,我想留出空间来对它们的删除进行细粒度的控制。也就是说,如果需要的话,某些文件可以提前删除(例如,它们太大并且不再重要)。

实现这一目标的最佳/推荐方法是什么?

可能对此有想法

  • try-finalizewith语句不是一个选项,因为我们有许多文件,它们的生命周期可能会相互重叠。而且,它几乎不承认更精细控制的选择。

  • 从我读到的内容来看,__del__这也不是一个可行的选择,因为它甚至不能保证它最终会运行(尽管我并不完全清楚什么是“有风险”的情况)。此外(如果仍然如此),__del__运行时库可能不可用。

  • tempfile图书馆似乎很有前途。然而,文件在关闭后就消失了,这绝对是一个遗憾,因为我希望它们被关闭(当它们不执行任何操作时)以限制打开文件的数量。

    • 该库承诺该文件“一旦关闭(包括对象被垃圾收集时的隐式关闭)就会被销毁”。

      他们如何实现隐式关闭?例如,在 C# 中,我会使用(可靠的)终结器,但事实__del__并非如此。

  • atexit似乎是最好的候选者,它可以作为可靠的终结器,而不是__del__实现安全的一次性模式。与对象终结器相比,唯一的问题是它真正在退出时运行,这相当不方便(如果对象有资格更早地被垃圾收集怎么办?)。

    • 在这里,问题仍然存在。库如何实现方法始终运行?(除非在非常意外的情况下很难做任何事情)

在理想情况下,似乎__del__atexit库的组合可能表现最好。也就是说,清理既在 at__del__又在 中注册的方法进行atexit,而禁止重复清理。如果__del__被调用,注册的将被删除。

唯一(但也很关键)的问题是,__del__如果在 处注册了方法,则该方法不会运行atexit,因为对该对象的引用永远存在。

因此,欢迎任何建议、建议、有用的链接等。

python garbage-collection finalizer temporary-files del

7
推荐指数
1
解决办法
6212
查看次数

超级python 2.7

我试图了解如何super在python中使用

class people:   
 name = ''  
 age = 0  
  __weight = 0  

 def __init__(self,n,a,w):  
    self.name = n  
    self.age = a  
    self.__weight = w  
def speak(self):  
    print("%s is speaking: I am %d years old" %(self.name,self.age))  


class student(people):  
 grade = ''  
 def __init__(self,n,a,w,g):  
    #people.__init__(self,n,a,w)  
    super(student,self).__init__(self,n,a,w)
    self.grade = g  

 def speak(self):  
    print("%s is speaking: I am %d years old,and I am in grade %d"%(self.name,self.age,self.grade))  


s = student('ken',20,60,3)  
s.speak()
Run Code Online (Sandbox Code Playgroud)

上面的代码出现以下错误:

---------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-147-9da355910141> in <module>()
     10 
     11 …
Run Code Online (Sandbox Code Playgroud)

python subprocess python-2.7 python-3.x

6
推荐指数
1
解决办法
2万
查看次数

Java/Apache POI - 如何更改/设置特定单元格中的字体大小?

我想更改工作表中单元格中填充的确定数据的字体大小。假设该单元格是第 26 列的第 2 行。以范围方式来说,这将是:Z2。字体大小为11。例如,我想将字体大小更改为72。

我怎样才能做到这一点?

java apache-poi

6
推荐指数
1
解决办法
2万
查看次数

使用 pip 搜索如何工作?

是的,我对这个问题很认真。使用 pip 搜索如何工作?

关键字的文档search指的是“pip 搜索参考”,https://pip.pypa.io/en/stable/user_guide/#searching-for-packages其中除了参考之外的所有内容。

我无法从搜索尝试中得出搜索是如何工作的结论。例如,如果我搜索“exec”,我会得到各种结果,例如exec-pypeline (0.4.2) - an incredible python package. 我什至得到与“exec”无关的包名结果,只要描述中包含“exec”一词。

但奇怪的是,尽管其中一个包exec的名称中包含我自己的包之一,但我没有在列表中看到我自己的包之一。现在仅凭这一点就可以得出结论,pip(至少)会在包描述(我的包没有)中搜索完整的搜索词。

但是基于这个假设,如果我搜索包描述中提供的其他术语,我也不会列出我的包。这也适用于其他包:例如,如果我搜索“项目”,我不会进入flask-macros结果集中,尽管flask-macros. 因此,由于这与上述假设相矛盾,这显然不是搜索的工作方式。

有趣的是,我可以搜索“macro”并得到“flask-macros”,但是如果我搜索“macr”,则找不到“flask-macros”。

那么 pip 究竟是如何进行搜索的呢?在哪里可以找到合适的参考资料?

python search pip pypi

6
推荐指数
1
解决办法
660
查看次数