day14总结

1.内置类属性

创建类的时候,系统默认为我们添加的类的属性

class Person:
    """说明文档:人类"""
    # 类的字段
    number = 61

    # 对象属性
    def __init__(self, name, age=0, gender='女'):
        self.name = name
        self.age = age
        self.gender = gender

    # ============方法==========
    def object_func(self):
        print('对象方法: '+self.name)

    @classmethod
    def class_func(cls):
        print('类方法: ', cls.number)

    @staticmethod
    def static_func():
        print('静态方法')
# 系统自带的魔法,可以定制当前类的对象的打印内容。实现这个函数的时候要求有一个字符串类型的返回值
# 影响单独打印对象的效果
# def __str__(self):
#     return str(self.__dict__)[1:-1]

# 对象作为元素的时候的打印效果
def __repr__(self):
    return '<'+str(self.__dict__)[1: -1]+'>'

# def __repr__(self):
#     return '<%s.%s object at %s>' % (self.__class__.__module__, self.__class__.__name__, hex(id(self)))

p1 = Person('小明', 18, '男')

1.name 字段

"""
类.name - 获取类的名字
"""
print(Person.name, type(Person.name)) # Person <class 'str'>

2.doc 字段

"""
类.doc - 获取类的说明文档
"""
print(Person.doc)

3.class 对象属性

"""
对象.class - 获取对象对应的类(你这个对象是哪个类的对象)
"""
print(p1.class)

4.dict 字段/对象属性

"""
类.dict - 获取类中所有的字段和对应的值,以字典的形式返回(了解)
对象.dict - 获取对象中所有的属性和对应的值,以字典的形式返回(掌握)
"""
print(Person.dict)
print(p1.dict)

5.module 字段

"""
类.module - 获取指定的类声明在哪个模块中,返回模块名(获取类所在的模块的name属性的值)
"""
print(Person.module)

6.bases 字段

"""
类.bases - 返回当前类的所有父类
"""
print(Person.bases)

class A(Person, int):
pass

print(A.bases)

print('p1:', p1)

persons = [p1, Person('小花', 20)]
print(persons)

2.slots魔法

"""
可以通过给slots字段赋值来约束当前类有哪些对象属性;

当在类中给slots赋值后,当前类的对象的dict属性无效
"""

class Dog:
slots = ('name', 'age', 'gender', 'name1')

def __init__(self, name, age=0):
    self.name = name
    self.age = age
    self.gender = '公'

dog = Dog('大黄')

print(dog.dict)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.面向对象编程 编程思想:1.面向过程编程-->算法,逻辑(数学逻辑)2.函数式编程-->函数,模块3.面象对象...
    hfudhu阅读 1,292评论 0 0
  • 一、面向对象编程编程思想:1.面向过程编程 ---> 算法,逻辑(数学逻辑)2.函数式编程 ---> 函数,模块3...
    Smr_T阅读 3,477评论 0 0
  • 一、面向对象编辑 编程思想:1.面向过程编程 ---> 算法,逻辑(数学逻辑) 2.函数式编程 ---> 函数,...
    大漠判官1阅读 2,394评论 0 0
  • 1.类的声明 类是拥有相同属性和相同功能的对象的集合 class 类名:类的内容 2.创建对象 对象 = 类() ...
    Sun_092b阅读 2,463评论 0 0
  • 01.recode 1.类和对象的概念 类:拥有相同的功能和相同属性的对象的集合对象:类的实例 2.类的声明 cl...
    Gary134阅读 1,616评论 0 0

友情链接更多精彩内容