在我的整个应用程序中,我有一些未显示的下划线(_).
这是由于访问者.但是如何禁用它呢?适用范围广?我没有标签,文本框,......
谢谢
我一直在讨论"访问者"这个词的用法(上下文是Java编程).我倾向于认为访问器隐含地是"属性访问器" - 也就是说,该术语暗示它或多或少地提供对对象内部状态的直接访问.另一方坚持认为任何以任何方式触及对象状态的方法都是访问者.
我知道你们不能为我赢得这个论点,但我很想知道如何定义这个词.:)
我将包含150,000行的csv文件读入pandas数据帧.此数据框有一个字段"日期",日期格式为yyyy-mm-dd.我想从中提取月,日和年,并分别复制到数据框的列,'月','日'和'年'.对于几百条记录,以下两种方法都可以正常工作,但对于150,000条记录,这两种方法都需要花费很长的时间来执行.对于100,000多条记录,有更快的方法吗?
第一种方法:
df = pandas.read_csv(filename)
for i in xrange(len(df)):
df.loc[i,'Day'] = int(df.loc[i,'Date'].split('-')[2])
Run Code Online (Sandbox Code Playgroud)
第二种方法:
df = pandas.read_csv(filename)
for i in xrange(len(df)):
df.loc[i,'Day'] = datetime.strptime(df.loc[i,'Date'], '%Y-%m-%d').day
Run Code Online (Sandbox Code Playgroud)
谢谢.
我假设纯函数必须始终具有返回类型(即,必须不是void)并且必须具有相同的输出,而不管对象的状态和Impure函数是否改变对象的状态或打印对象的状态.
但我使用的教科书指出:
访问器通常包含return语句,但是打印有关对象状态的信息的方法也可以被分类为访问者.
我糊涂了.哪一个是正确的?
编辑
一点澄清,让我问的是这个问题:

最后一个问题是" 给出所使用的功能类型 ",那里评论的人说这是一个不纯的功能,因为它是打印.
那么这个功能是纯粹的还是不纯的?
我在项目中添加了一个协变接口:
interface IView
{
}
interface IPresenter<out TView> where TView : IView
{
TView View { get; }
}
Run Code Online (Sandbox Code Playgroud)
我创建了一些类,实现了这些接口:
class TestView : IView
{
}
class TestPresenter : IPresenter<TestView>
{
public TestView View
{
get { return something; }
}
private void DoSomething()
{
}
}
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地使用它:
IPresenter<IView> presenter = new TestPresenter();
Run Code Online (Sandbox Code Playgroud)
所以一切似乎都是正确的,所以我认为我的协方差用法是正确的.不幸的是,我们的单元测试项目包含位于同一项目中的某些类型的私有访问器,如协变接口,这会导致构建失败.
无法从程序集'GenericInheritanceTest_Accessor,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'GenericInheritanceTest.IPresenter_Impl`1',因为它声明了协变或逆变类型参数,而不是接口或委托.
究竟是什么问题?我的实施是否有失败,分别是.怎么解决这个问题?不能,我们一旦使用协变类型就必须避免访问者?是否可以阻止为某些类型创建访问器来解决此问题?
我有以下组件:
@Component({
selector: 'pc-radio-button',
templateUrl: './radio-button.component.html',
providers: [
{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => FieldRadioButtonComponent), multi: true}
]
})
export class RadioButtonComponent implements ControlValueAccessor {
...
}
Run Code Online (Sandbox Code Playgroud)
我可以通过这些输入分配和更改值:
<pc-radio-button [formControl]="formControl"></pc-radio-button>
<pc-radio-button [formControlName]="inputControlName"></pc-radio-button>
Run Code Online (Sandbox Code Playgroud)
但是我需要组件可以直接访问指定的formControl,因为我需要根据其状态添加样式.
通过创建@Input()formControl并不能解决问题.因为它不包括通过formControlName分配表单控件的情况.
在C++中,可以创建一个返回对私有字段的引用的访问器.
class Cls {
private:
int _attr;
public:
int& attr() { return _attr; }
};
Run Code Online (Sandbox Code Playgroud)
这样可以如下访问该属性:
// set
c.attr() = 4;
// get
cout << c.attr() << endl;
Run Code Online (Sandbox Code Playgroud)
这种风格的访问者惯用/良好实践吗?一个普通的C++程序员会看到这种访问者的风格会感到惊讶吗?(提示:我第一次看到这个时很惊讶,但有点喜欢这种风格)
我试图创建一个构造函数,将一个字段作为参数,然后将其放在一个存储在超类中的字段中.这是我正在使用的代码
public crisps(String flavour, int quantity) {
this.flavour = super.getFlavour();
this.quantity = quantity;
}
Run Code Online (Sandbox Code Playgroud)
在超类中,我用字段初始化了字段
private String flavour;
Run Code Online (Sandbox Code Playgroud)
我有一个访问方法
public String getFlavour() {
return flavour;
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误" 风味在超类中有私人访问权限 ",但我相信这应该无关紧要,因为我调用了将其返回到字段的访问器方法?
在Javascript中,似乎使用属性访问器并不是那么常见(不像其他OO语言,例如Java).
如果我有一个Person名字的对象,定义为
function Person(name) {
this.name = name;
}
Run Code Online (Sandbox Code Playgroud)
一个人的名字不会改变,但我确实希望能够在需要时访问它,所以我可以这样做:
function Person(name) {
var name = name;
this.getName = function() {
return name;
}
}
Run Code Online (Sandbox Code Playgroud)
即使在动态语言中,我认为使用getter和setter的原理应用与静态类型的OO语言相同(例如封装,添加验证,限制访问等)
这个问题可能会被认为是主观的,但我很好奇为什么这种行为不会更频繁出现(例如,如果一切都是公开的,Java开发人员就会疯狂).
在javascript中有一种"标准"的方法吗?我见过Object.defineProperty,但并非所有浏览器都支持.
编程和Ruby的新手,我希望关于符号的这个问题符合要求.据我所知,在红宝石的符号(如:book,:price)是特别有用的哈希键,以及全能做的是字符串可以做的事情一个轻量级的,特定子集.
但是,我在一方面对符号感到困惑.具体来说,当它们在attr_accessor方法类型中使用时,它们看起来更像是一个变量.例如,attr_reader :book, :price.
如果它们是该用法中的变量,那么这有点令人费解,因为它们通常不在变量类型中列出(如$ global,@ instance,local,@@ class,有时候,CONSTANT,变量类型)变量类型被描述.
如果符号是以这种方式使用的变量,那么应该对它们有什么范围?或者它们在这种情况下仍然是某种轻量级的字符串?(或者也许以更广泛的方式,符号,字符串和变量都具有基本的鸭子性质?)提前感谢您的见解和建议.
accessor ×10
java ×3
angular ×1
c# ×1
c++ ×1
controls ×1
covariance ×1
date ×1
datetime ×1
definition ×1
directive ×1
idioms ×1
javascript ×1
pandas ×1
python ×1
reference ×1
ruby ×1
subclass ×1
superclass ×1
symbols ×1
unit-testing ×1
variables ×1
wpf ×1