◐ Shell
clean mode source ↗

rustpython_vm::obj::objclassmethod::PyClassMethod - Rust

classmethod(function) -> method

Convert a function to be a class method.

A class method receives the class as implicit first argument, just like an instance method receives the instance. To declare a class method, use this idiom:

class C: @classmethod def f(cls, arg1, arg2, ...): ...

It can be called either on the class (e.g. C.f()) or on an instance (e.g. C().f()). The instance is ignored except for its class. If a class method is called for a derived class, the derived class object is passed as the implied first argument.

Class methods are different than C++ or Java static methods. If you want those, see the staticmethod builtin.

impl PyClassMethod[src]

pub fn new(value: PyObjectRef) -> Self[src]

impl Clone for PyClassMethod[src]

impl Debug for PyClassMethod[src]

impl PyClassDef for PyClassMethod[src]

const NAME: &'static str[src]

const DOC: Option<&'static str>[src]

impl PyClassImpl for PyClassMethod[src]

const TP_FLAGS: PyTpFlags[src]

fn impl_extend_class(ctx: &PyContext, class: &PyClassRef)[src]

fn extend_class(ctx: &PyContext, class: &PyClassRef)[src]

fn make_class(ctx: &PyContext) -> PyClassRef[src]

fn make_class_with_base(ctx: &PyContext, base: PyClassRef) -> PyClassRef[src]

impl PyValue for PyClassMethod[src]

const HAVE_DICT: bool[src]

fn class(vm: &VirtualMachine) -> PyClassRef[src]

fn into_ref(self, vm: &VirtualMachine) -> PyRef<Self>[src]

fn into_ref_with_type(
    self,
    vm: &VirtualMachine,
    cls: PyClassRef
) -> PyResult<PyRef<Self>>
[src]

fn into_ref_with_type_unchecked(
    self,
    cls: PyClassRef,
    dict: Option<PyDictRef>
) -> PyRef<Self>
[src]

impl SlotDescriptor for PyClassMethod[src]

fn descr_get(
    vm: &VirtualMachine,
    zelf: PyObjectRef,
    obj: Option<PyObjectRef>,
    cls: OptionalArg<PyObjectRef>
) -> PyResult
[src]

fn get(
    zelf: PyObjectRef,
    obj: PyObjectRef,
    cls: OptionalArg<PyObjectRef>,
    vm: &VirtualMachine
) -> PyResult
[src]

fn _zelf(zelf: PyObjectRef, vm: &VirtualMachine) -> PyResult<PyRef<Self>>[src]

fn _unwrap(
    zelf: PyObjectRef,
    obj: Option<PyObjectRef>,
    vm: &VirtualMachine
) -> PyResult<(PyRef<Self>, PyObjectRef)>
[src]

fn _check(
    zelf: PyObjectRef,
    obj: Option<PyObjectRef>,
    vm: &VirtualMachine
) -> Result<(PyRef<Self>, PyObjectRef), PyResult>
[src]

fn _cls_is<T>(cls: &OptionalArg<PyObjectRef>, other: &T) -> bool where
    T: IdProtocol
[src]

fn __extend_py_class(ctx: &PyContext, class: &PyClassRef)[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

fn into(self) -> U[src]

Performs the conversion.

impl<T> IntoPyObject for T where
    T: PyValue
[src]

fn into_pyobject(
    Self,
    &VirtualMachine
) -> Result<Rc<PyObject<dyn PyObjectPayload + 'static>>, PyRef<PyBaseException>>
[src]

impl<T> PyObjectPayload for T where
    T: 'static + PyValue
[src]

fn as_any(&Self) -> &(dyn Any + 'static)[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

fn vzip(self) -> V