import random as rd
q1 = rd.randint(1,10)
print(dir(q1))
输出为:
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
1。我想知道如何在给定的q1中使用(语法)所有这些方法/属性/函数。(我不知道什么是属性/函数/方法?我只是为了关键字匹配而输入的)
在这里,我观察到两类方法:一种是两端带有双下划线的方法,另一种是没有下划线的方法。例如,__abs__
和bit_length
。这两个子类之间的基本区别是什么?
我只想知道有没有一个通用的术语来说明如何使用这些方法?例如,我必须对哪些方法使用.
?如何使用它们?请举几个例子。例如,__eq__
是相等的函数。我想检查q1是否等于5。我的代码是:
print(q1.eq(5))
输出为:
AttributeError:'int' object has no attribute 'eq'
看来我没用好。你的回答将帮助我知道如何使用在任何给定类下定义的方法/属性/函数。你知道吗
我会对你的问题给出一个高层次的答案,但我建议你看一下Python documentation以得到更深入的答案。你知道吗
1)一个对象基本上有两种类型的属性。对象可以有
instance attributes
,这些instance attributes
以为基础分配给每个对象,并且class attributes
这些class attributes
对象的所有实例都可以访问。你知道吗在本例中,创建的每个Employee实例都有实例属性
name
和badge_number
,这是特定于该实例的,但是请注意每个Employee实例如何访问类属性has_benefits
,该属性对于所有Employee都设置为True
。你知道吗function
是一些可以用名称调用的代码,而method
是一些可以用与对象关联的名称调用的代码。还有一个instance method
接受self
参数作为第一个参数注意函数
show_something
只是一些我们可以按名称调用的代码。另外,请注意方法display_something
是如何绑定到类对象的,实例方法print_something
是如何绑定到对象的实例的。mc.print_something()
与MyClass.print_something(mc)
相同2)在对象上运行
dir()
会返回对象所有属性的列表。有些属性被认为是被双下划线包围的特殊属性。有些属性是可调用的,我们可以通过将属性传递给内置函数callable()
来确定,如果属性是可调用的,它将返回True
,否则返回False
。你知道吗没有周围双下划线的属性也是属性,方法也可以是属性。
__abs__
在运行abs()
内置函数时被调用,该函数返回传入对象的绝对值。bit_length
是一种返回表示传入对象的位数的方法。是的,您可以使用访问这些属性。(点)语法。你知道吗3)最后,我们可以定义一个对象,该对象实现一些特殊方法,当我们运行特定操作(如成员资格测试和获取集合长度)时,Python会使用这些方法。我将展示一些基本示例:
试一试:
我希望这有帮助!你知道吗
相关问题 更多 >
编程相关推荐