1.
class DiffSelf
public
def method1
puts "call method1"
end
def method2
puts "call method2"
self.method1
end
def method3
puts "call method3"
method1
end
end
t=DiffSelf.new
t.method2
#call method2
#call method1
t.method3
#call method3
#call method1
2.
class DiffSelf
private
def method1
puts "call method1"
end
public
def method2
puts "call method2"
self.method1
end
def method3
puts "call method3"
method1
end
end
t=DiffSelf.new
t.method2
#call method2
#private method error
t.method3
#call method3
#call method1
3.
class DiffSelf1
private
def puts(str)
"private method :#{str}"
end
public
def call_puts_with_self(str)
self.puts str
end
def call_puts_without_self(str)
puts str
end
end
t=DiffSelf.new
t.call_puts_without_self("Hello,world!") #Hello ,world!
t.call_puts_with_self("Hello,world!")#private method error
结论:
1.ruby的私有方法只能被隐式self调用,而public和protected 方法可以被显式self和隐式self调用,隐式self更具灵活性。
2.隐式self如果遇到没有的方法会按照类的类继承和mixin的优先级查找直到,而显式self不会。
分享到:
- 2009-05-03 14:29
- 浏览 1351
- 评论(4)
- 论坛回复 / 浏览 (4 / 2975)
- 查看更多
相关推荐
隐式等待和显式等待的区别在于它们的工作方式和灵活性: 隐式等待(Implicit Waits)设置一个全局等待时间,在这个时间范围内,Selenium WebDriver会自动等待指定的时间,直到元素出现在DOM中。如果在指定时间范围...
在Python编程语言中,隐式循环是一种无需显式使用`for`或`while`等循环关键字,而是通过函数调用来实现循环的操作方式。在本文中,我们将深入探讨如何使用Python的`sum()`和`range()`函数结合,实现隐式循环快速求和...
Selenium提供了隐式等待和显式等待机制。隐式等待设置全局等待时间,而显式等待则更灵活,可等待特定条件变为真: ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui ...
`NSThread`的操作主要包括显式调用、隐式调用以及一些常用的方法。 #### 显式调用 通过`NSThread`类可以显式地创建一个新的线程: 1. **类方法**: ```objective-c [NSThread detachNewThreadSelector:@...
通过对航空安全事故调查报告构成的文本数据集进行分析,研究者将航空安全事故因果关系分为显式因果关系和隐式因果关系两大类,并提出了相应的抽取方法。 #### 显式因果关系与隐式因果关系的定义 - **显式因果关系*...
本文献探讨了一种新型的隐式组合自校正器(implicit combined self-tuner),旨在解决传统显式自校正控制器(explicit self-tuner)在实际应用中存在的计算复杂度过高的问题。该研究由自动化部门的李庆泉教授提出,...
可以使用隐式等待和显式等待: ```python driver.implicitly_wait(10) # 隐式等待,设置10秒超时时间 wait = WebDriverWait(driver, 10) # 显式等待,最多等待10秒,直到条件满足 wait.until(EC.presence_of_element...
Selenium还支持如隐式等待、显式等待、动作链、截图等功能,用于处理动态加载的内容、模拟用户手势以及记录测试过程。 ### 八、最佳实践 - **代码整洁**: 遵循PEP8(Python)或Java编码规范,保持代码整洁。 - **...
Selenium提供了显式等待和隐式等待: ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_...
Selenium 支持两种类型的等待机制:显式等待和隐式等待。 **5.1 显式等待** 显式等待是指等待某个条件成立后继续执行。可以使用 ExpectedConditions 类来定义这些条件: ```python from selenium.webdriver....
Python的多态是动态类型的体现,无需显式声明。 5. **抽象类与接口**:Python没有内置的抽象类或接口概念,但可以使用`abc`模块来实现。`abc.ABCMeta`可以用来创建抽象基类,`@abc.abstractmethod`装饰器可以定义...
对于Delphi,其对象的方法调用是隐式地通过`self`指针传递的,而C++则需要显式地使用箭头操作符(->)来访问成员。例如,如果有一个C++对象指针`cobject`,调用其方法`someMethod`需要写成`cobject->someMethod()`。...
4. 执行显式或隐式的 `super()` 调用。这将触发父类的构造过程,直到到达 `Object` 类的构造方法为止,因为所有Java类都隐式地继承自 `Object` 类。 5. 执行类声明中的成员初始化块和静态初始化块。成员初始化块是在...
在Python 3中,所有的类都隐式地继承自object,而在Python 2中,需要显式指定这一点。 - def getGender(self): 返回"Unknown"。这是Person类的一个方法,返回一个字符串"Unknown"。在Python中,每个方法的第一个...
9. **等待技术**: 由于网页加载和动态内容更新,可能需要使用显式等待或隐式等待来确保元素已加载。`WebDriverWait`类提供了一种优雅的方式来实现这一点。 10. **日志和报告**: 记录测试步骤和结果对于调试和报告很...
如何在不同类型之间进行显式和隐式转换。 8. **自增和自减运算符(Increment and Decrement Operators)** 自增(++)和自减(--)运算符的使用和它们的特殊性质。 9. **位运算符(Bitwise Operators)** 位...
self-join.txt SQL Server精华 (CHM).chm SQL.ppt sql.sql SQL2000课程安排.txt SQL21自学通.pdf SQLServer200问.rar SQLServer应用程序中的高级SQL注入.tx SQL_ppt sql语句.txt trancount.sql Trigger ...
该文档由 Baiju Muthukadan 编写,详细介绍了如何在不同的操作系统上安装和配置 Selenium Python bindings。 **1.2 下载 Selenium 的 Python 绑定** 为了使用 Selenium 的 Python 绑定,你需要先安装 Python。推荐...