What do `def +@` and `def -@` mean?
They are unary +
and -
methods. They are called when you write -object
or +object
. The syntax +x
, for example, is replaced with x.+@
.
Consider this:
class Foo
def +(other_foo)
puts 'binary +'
end
def +@
puts 'unary +'
end
end
f = Foo.new
g = Foo.new
+ f
# unary +
f + g
# binary +
f + (+ g)
# unary +
# binary +
Another less contrived example:
class Array
def -@
map(&:-@)
end
end
- [1, 2, -3]
# => [-1, -2, 3]
They are mentioned here and there's an article about how to define them here.
What is the Meaning Of '@' before A function In Python 3?
It represent the Decorator
. A decorator is a function that takes another function and extends the behavior of the latter function without explicitly modifying it.
def decorator_function(func):
def inner_function():
print("Before the function is called.")
func()
print("After the function is called.")
return inner_function
@decorator_function
def args_funtion():
print("In the middle we are!")
Actually this @decorator_function
decorator perform the same job as
args_funtion = decorator_function(args_funtion)
args_funtion()
What does - mean in Python function definitions?
It's a function annotation.
In more detail, Python 2.x has docstrings, which allow you to attach a metadata string to various types of object. This is amazingly handy, so Python 3 extends the feature by allowing you to attach metadata to functions describing their parameters and return values.
There's no preconceived use case, but the PEP suggests several. One very handy one is to allow you to annotate parameters with their expected types; it would then be easy to write a decorator that verifies the annotations or coerces the arguments to the right type. Another is to allow parameter-specific documentation instead of encoding it into the docstring.
What does the at (@) symbol do in Python?
An @
symbol at the beginning of a line is used for class and function decorators:
- PEP 318: Decorators
- Python Decorators
The most common Python decorators are:
@property
@classmethod
@staticmethod
An @
in the middle of a line is probably matrix multiplication:
@
as a binary operator.
What is the meaning of '@' symbol in Oracle SQL?
It refers to a non-local table, the bit behind the @ is the db descriptor.
select * from question_answer@abcd where id = '45'
Means select not from the local question_answer
table, but from the table on the db designated as abcd
. The keyword to google for is dblink
The located assembly's manifest definition does not match the assembly reference
The .NET Assembly loader:
- is unable to find 1.2.0.203
- but did find a 1.2.0.200
This assembly does not match what was requested and therefore you get this error.
In simple words, it can't find the assembly that was referenced. Make sure it can find the right assembly by putting it in the GAC or in the application path.
run below command to add the assembly dll file to GAC:
gacutil /i "path/to/my.dll"
Also see https://learn.microsoft.com/archive/blogs/junfeng/the-located-assemblys-manifest-definition-with-name-xxx-dll-does-not-match-the-assembly-reference.
What is the meaning of number 1e5?
1e5
is a number expressed using scientific notation and it means 1 multiplied by 10 to the 5th power (the e meaning 'exponent')
so 1e5
equals 1*100000
and is equal to 100000
, the three notations are interchangeable meaning the same.
Related Topics
Specifying Content Type in Rspec
Access Ruby Hash Using Dotted Path Key String
Openssl Trouble with Ruby 1.9.3
How to I Add a Hyperlink to a Cell in Axlsx
Ror - How to Remove Rails 4.1.1 Version
Find Products Matching All Categories (Rails 3.1)
Is There a Pry Debug Setup That Works with Ruby 2.0
Your Ruby Version Is 2.2.4, But Your Gemfile Specified 2.3.0
How to Run Rake with --Trace Within Capistrano
How to Require a Block in Ruby
Rails Render of Partial and Layout in Controller
Implementing a Synchronization Barrier in Ruby