类的初始化
Posted zgzeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的初始化相关的知识,希望对你有一定的参考价值。
类的初始化
类的三大特性有类实例,属性和类方法
class Person: pass
1.类属性的添加,可以直接在类下面写入,也可以在类外面写入
class Person: # 直接在类下面添加 age = 23 height = "180cm" hobby = "code" # 在类外面添加 类名.类属性名=属性值 Person.name = "name" # 查看类属性 print(dir(Person)) # [‘__class__‘, ‘__delattr__‘, ‘__dict__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__le__‘, ‘__lt__‘, ‘__module__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘__weakref__‘, ‘age‘, ‘height‘, ‘hobby‘, ‘name‘]
2. 实例化对象
# 实例化对象 zgzeng = Person()
# 实例化对象 zgzeng = Person() # 实例对象访问类属性 print(zgzeng.age) # 23 print(zgzeng.name) # name print(zgzeng.hobby) # code # 修改属性 print(id(Person.name)) # 1239214623792 print(id(zgzeng.name)) # 1239214623792 zgzeng.name = "zgzeng" print(id(zgzeng.name)) # 1239244643440
print(Person.name) # name
print(id(Person.name)) # 123921462379
我们这里可以知道,如果实例对象下面没有name属性,那么访问的就是类下面的属性,如果通过实例名.name = 属性值,这并没有修改原来的类属性name,而是增加了一个实例属性
# 添加实例属性 zgzeng.age = 24 zgzeng.weight = "55kg" print(zgzeng.age) # 24 print(zgzeng.weight) # 55kg
除了这个方法来添加实例属性之外,还可以在类的内部,通过初始化方法,添加实例属性
class Person: # 直接在类下面添加 age = 23 height = "180cm" hobby = "code" # 类的初始化 def __init__(self, gentle, address): self.gentle = gentle self.address = address
# 实例化对象 zgzeng = Person("female", "Jiangxi") # 访问实例属性 print(zgzeng.gentle) # female print(zgzeng.address) # Jiangxi
__init__方法是一种初始化的魔术方法,魔术方法有很多种,每一个魔术方法都有他特定的用途,而初始化方法通常被用作来实例对象和定义实例属性的
以上是关于类的初始化的主要内容,如果未能解决你的问题,请参考以下文章
vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容
如何在使用cardview的片段中初始化gridlayoutmanager?
环境初始化 Build and Install the Apache Thrift IDL Compiler Install the Platform Development Tools(代码片段