Python中的类与对象

类的创建和实例的创建

class Dog(object):
    nums = 100
    __gender = "nan"

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self):
        print(f"{self.name} is eating")


    def __set_gender(self, gender):
        self.__gender = gender
        print(f"{self.__gender}")

    def set_gender(self):
        self.__set_gender("女")

    @classmethod
    def set_nums(cls, nums):
        cls.nums = nums

    @staticmethod
    def hello_world():
        print("Hello world! I am a Dog!")

    def __str__(self):
        return f"My name is {self.name}, age is {self.age}, gender is {self.__gender}"

    def __del__(self):
        print("我被删除了~")


dog = Dog("Kate", 5)
dog.set_gender()
print(dog)
dog.__del__()

dog.test1 = "hello"
print(dog.test1)

Dog.test1 = "world"
print(Dog.test1)
  • (object)代表继承自object类(基类),() == (object)
  • 类的命名尽量首字母大写,实例的命名尽量首字母小写
  • self代表的是实例的引用,也就是说self.name 就表示这个实例的name属性 
  • cls代表的是类的引用,也就是说 cls.nums 就表示这个类的nums属性
  • 实例可以调用实例方法、类方法,实例属性和类属性,类只能调用类属性和类方法

属性

实例属性

  • self.name 就是实例属性(第一次出现则代表创建,可以在类外部创建)

类属性

  • nums 就是类属性
  • cls.nums 就是类属性(第一次出现则创建,可以在类外部创建)

方法

魔法方法

__init__

  • 构造实例时自动调用的方法

__str__

  • 没法打印类
  • 打印实例时自动调用的方法,会自动返回 return 中的内容,一般会进行重写

__del__

  • 对象使用完会自动调用的方法
  • 也可以手动调用

实例方法

  • 类中的方法都需要传入一个self或者cls,self和cls的名字可以改,但要保证后面是同样的名字

类方法

  • 被@classmethod修饰的则是类方法
  • 只能通过类去访问,只能访问类属性、类方法和静态方法

静态方法

  • 被@staticmethod修饰的则是静态方法
  • 可以通过类和对象去访问,只能访问类属性和静态方法

私有属性 / 方法

  • 任何前面加上__的属性和方法就代表私有化,只能在类内部进行访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值