Python 类和对象

#要想访问私有变量可以这样
class Person:
    def __init__(self,name):
        self._name=name 
    def name(self):
        return self._name
#使用
print(p1.name())
#或者加一个装饰器
class Person:
    def __init__(self,name):
        self._name=name 
    @property
    def name(self):
        return self._name

#使用
print(p1.name)
#还可以更改
class Person:
    def __init__(self,name):
        self._name=name 
    @property
    def name(self):
        return self._name
    @name.setter
        def name(self,value):
        self._name=value
#类的私有属性和私有方法

class Animal:
    def __init__(self,name,legs):
        self.name
        self.legs=legs
        self.age=10#普通变量
        self.__age=10#表示私有变量,不能被继承,只能在自己类的内部使用,父类的方法中可以访问到
    def info(self)
        print(f'name:{self.name},legs:{self.legs}')
        self.__private_info()#在类的内部访问私有方法
    def __private_info(self):
        print(f'private_info')
class Person:
    name="xiaoming"  #类变量
    #定义一个方法
    def say_hello(self):
        print(f'hello{Person.name}')



#1.访问类变量
 print(Person.name)
#2.访问类中定义的方法
#先实例化类
 p=Person()
 p.say_hello()

类就是把一些共有的东西抽象出来

类变量通过类命名方式去修改会影响所有实例  如Person.name="zhangsan"
而 p.name=张三仅仅改变P这一个实例


使用构造器
class Person:
    def __init__(self,name):
        self.username=name          #实列变量
        self.age=10                 #直接写死
    def say_hello(self):            #self就是表示类的实例
        print(f'hello{self.username},age:{self.age}')  #在方法中引用都是通过self关键字

#使用
p1=Person('张三')
p1.say_hello()

类变量和实例变量的区别
修改类变量所有实例变量都会改变
修改实例变量仅实例变量这一个实例改变
class Employee:
    up=0.1
    def __init__(self,name,salary):
        self.username=name
        self.salary=salary
    def up_salary(self)
        self.salary=self.salary*(1+Employee.up)#用的是类变量的方式
class Employee:
    up=0.1
    def __init__(self,name,salary):
        self.username=name
        self.salary=salary
    def up_salary(self)
        self.salary=self.salary*(1+self.up)
#类的继承!
class Animal:
    def __init__(self,name,legs):
        self.name
        self.legs=legs
    def info(self)
        print(f'name:{self.name},legs:{self.legs}')

#狗也是一种动物,符合动物的特征,可以直接继承动物的特征,把父类的构造器,父类的方法继承过来
class Dog(Animal):
    pass
#继承之后还可以再写新的方法
class Cat(Animal):
    def walk(self):
        print(f'{self.name}用{self.legs}条腿走路')
#使用
c=Cat('喵喵',4)
c.info()
c.walk()
#还可以重新实现父类的方法
class Dog(Animal):
    #会把父类中的 info 方法覆盖
    def info(self,others):
     print(f'name:{self.name},legs:{self.legs},{others}')

        

对象:一个一个的个体,实实在在的东西

类:对象的模板,再根据模板创造出对象来

1.类的创建

class People:#类的名字,下面写定义People类的一些数据,函数
    def __init__(self):#初始化函数或者构造函数,作用当我们通过People类去创造对象的时候就会走到这个函数里面去
        print('调用__init__')

这就简单创建了一个类

2.根据类来创建对象

caixukun = People()
class People:#类的名字,下面写定义People类的一些数据,函数
    def __init__(self,name,age,sex,techang):#初始化函数或者构造函数,作用当我们通过People类去创造对象的时候就会走到这个函数里面去
        print('调用__init__')

成功调用了初始化函数,初始化函数也可以加参数

传参

caixukun = People(name:'蔡徐坤',age:23,sex:'男',techang:['唱’,'跳','rap'])
class People:#类的名字,下面写定义People类的一些数据,函数
    def __init__(self):#初始化函数或者构造函数,作用当我们通过People类去创造对象的时候就会走到这个函数里面去
        print('调用__init__')
    def koutouchan(self,string)
        print(string)
    def ziwojieshao(self,string)
        print(string)

给类添加函数

使用 

caixukun.koutouchan('你干嘛哎哟')

想要对象拥有name属性就得改为

class People:#类的名字,下面写定义People类的一些数据,函数
    def __init__(self,name,age,sex,techang):#初始化函数或者构造函数,作用当我们通过People类去创造对象的时候就会走到这个函数里面去
        self.name=name
        self.age=age
        self.sex=sex
        self.techang=techang
        print('调用__init__')
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值