一、类和对象的概念

python 获取类的属性名称 python获取对象的类名_类属性



1、类的定义

class 类名:
  属性
  方法

例:

class Dog:
    kind="金毛"
    def eat(self):
        print("吃的是狗粮!!!")
    def run(self):
        print("跑得很快!!!")
    def swim(self):
        print("会狗刨!!!")

2、创建对象

对象名 = 类名()

my_dog = Dog()

① 查看对象的属性

对象名.属性

my_dog.kind

② 查看对象的方法

对象名.方法()

my_dog.run()

3、在创建对象的同时,可以个性化的定制对象的属性。
初始化:魔法函数 __init__ 在创建对象的同时,自动化调用。
在类当中可有可无。
实例化的同时,自动调用__ init__. __ init__ 有几个参数,那在实例化时,就要传几个。

class Dog:
    def __init__(self,kind,color,name):
        self.kind = kind
        self.color = color
        self.name = name
    def eat(self):
        print("吃的是狗粮!!!")
    def run(self):
        print("跑得很快!!!")
    def swim(self):
        print("会狗刨!!!")

my_dog = Dog("哈士奇","黑色","二哈")
print(my_dog.kind)
my_dog.run()

self: 对象本身。
实例方法:第一个参数是self

  • 类属性:直接在类当中定义的。不在任何的实例方法当中。
  • 类方法:函数加上@classmethod参数默认为cls. cls表示类本身。
    可以通过cls访问类的属性,但是不能访问实例属性。

类可以访问,对象可以访问。

  • 实例属性: self. 属性名
  • 实例方法:参数第一个是self
    实例都是可以访问类属性,类方法的。

只有实例才可以访问。

4、静态方法(自动化测试基本不会用到,了解即可)
(1) 在类定义内部,使用@staticmethod修饰
(2)与类无任何关联,就是一个普通函数,放在类当中方便管理
(3) 参数无self,cls
(4)类/实例均可访问

python 获取类的属性名称 python获取对象的类名_类定义_02


问题一、类属性和实例属性重名了,对象访问属性时,是访问类和还是实例自己的? ?

自己有,先用自己的。自己没有,才去用类的。

问题二、在类定义当中,实例方法可以调用其它实例方法吗?
可以。
问题三、在类定义时,在实例方法当中,可以给对象设置属性吗? (不在_ init_ 函数中的属性)
可以
问题四、类中方法的参数,可以是其它类的实例对象吗?
可以

python 获取类的属性名称 python获取对象的类名_实例方法_03