#r #dbplyr #r-s3 #rdebug
Вопрос:
У меня есть объект R lf
, который является элементом класса tbl_lazy
:
library(dbplyr)
lf <- lazy_frame(a = TRUE, b = 1, c = 2, d = "z", con = simulate_hana())
>class(lf)
[1] "tbl_HDB" "tbl_lazy" "tbl"
С помощью пакета sloop я вижу, что общая функция print.tbl_lazy
установлена в visible = FALSE
значение . По-видимому, именно по этой причине печать print.tbl_lazy
возвращается Error: object 'print.tbl_lazy' not found
.
generic class visible source
<chr> <chr> <lgl> <chr>
11 print tbl_lazy FALSE registered S3method
Когда я отлаживаю print
, я вижу вызов print.lazy
и теперь могу видеть содержимое print.tbl_lazy
.
debugging in: function (x, ...)
UseMethod("print")(x)
debug: UseMethod("print")
Browse[2]> n
debugging in: print.tbl_lazy(x)
debug: {
show_query(x)
}
Мой вопрос в том, почему все методы класса tbl_lazy
настроены visible = FALSE
и каковы последствия этого? Мне кажется, что, хотя это может иметь некоторые преимущества, какими бы они ни были, это затрудняет доступ к коду метода, что на таком языке, как R, используемом таким количеством нетехнических пользователей, кажется большим недостатком.
Я не смог найти никакой документации по этому поводу.