class Person(object):
"""用来完整的描述一个人的基本属性和方法"""
# 类属性
country = '中国'
def __init__(self):
self.province = '河南'
self.__age = 18
def run(self):
"""跑步的功能"""
print(self.province)
print("我要开始天天跑步")
# 定义类方法
@classmethod
def test_class(cls):
print("in test class")
# 定义静态方法
@staticmethod
def test_static():
print("in static method")
def __call__(self, *args, **kwargs):
print("我被调用了")
def __str__(self):
return self.province
p = Person()
print(p)
# __doc__表示类的描述信息
print(Person.__doc__)
# __dict__:类或对象中的所有属性
print(p.__dict__) # 记录实例对象的属性
print(Person.__dict__) # 记录当前类中的定义的方法和类属性
# __class__表示当前操作的对象的类是什么
print(p.__class__)
print(p.__class__.__doc__)
# __module__表示当前操作的对象在哪个模块
print(Person.__module__)
print(p.__module__)
# 在这里输出的是一个type类,这是一个元类,元类是用来创建类对象的(了解即可)
print(Person.__class__)
# 调用执行某一个实例对象 如果没有__call__方法,会'Person' object is not callab错误, 需要实现__call__方法
p()
相关文章
- Java学习第二篇:类,对象,成员属性,成员方法,构造方法,类变量,类方法
- 学习effective java-4创建和销毁对象之利用私用构造方法强化类的非实例化
- Python常见面试题006 类方法、类实例方法、静态方法有何区别?
- java 面向对象基础 实例方法与类方法 this 包 访问权限 私有 共有 友好 保护
- Python__22--类属性、类方法、静态方法
- cad心得三:关于c#.net下的database类的方法和属性 .
- 如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法??
- 从Ruby中的类方法调用私有实例方法
- 如何在Ruby中定义类的特定属性的方法?
- ruby mixin与类方法,实例方法和类变量