pub fn class_get_attr(class: &PyClassRef, attr_name: &str) -> Option<PyObjectRef> {
    flame_guard!(format!("class_get_attr({:?})", attr_name));

    if let Some(item) = class.attributes.borrow().get(attr_name).cloned() {
        return Some(item);
    }
    for class in &class.mro {
        if let Some(item) = class.attributes.borrow().get(attr_name).cloned() {
            return Some(item);
        }
    }
    None
}
/// This is the internal get_attr implementation for fast lookup on a class.
This is the internal get_attr implementation for fast lookup on a class.
This is the internal get_attr implementation for fast lookup on a class .
pub fn class_get_attr(class: &PyClassRef, attr_name: &str) -> Option<PyObjectRef> {
    flame_guard!(format!("class_get_attr({:?})", attr_name));
    if let Some(item) = class.attributes.borrow().get(attr_name).cloned() {
        return Some(item);
    }
    for class in &class.mro {
        if let Some(item) = class.attributes.borrow().get(attr_name).cloned() {
            return Some(item);
        }
    }
    None
}
pub fn class_get_attr ( class : & PyClassRef , attr_name : & str ) -> Option < PyObjectRef > { flame_guard ! ( format ( " " attr_name ) ) ; if let Some ( item ) = class . attributes . borrow ( ) . get ( attr_name ) . cloned ( ) { return Some ( item ) ; } for class in & class . mro { if let Some ( item ) = class . attributes . borrow ( ) . get ( attr_name ) . cloned ( ) { return Some ( item ) ; } } None }
This is the internal get_attr implementation for fast lookup on a class.
This is the internal get_attr implementation for fast lookup on a class .
class
&PyClassRef
attr_name
&str
class
&PyClassRef
attr_name
&str