python -- 面向对象-成员
- class Person:
- def __init__(self,name,gender,hobby):
- self.name = name # 实例变量 对象里的变量
- self.gender = gender
- self.hobby = hobby
- s = Person('张三','男','打篮球')
- print(s.hobby)
- s.hobby = '踢足球'
- print(s.hobby)
2、类变量:变量属于类,但是对象也可以访问
- class Person:
- country = '中国'
- def __init__(self,name,gender):
- self.name = name
- self.gender = gender
- c = Person('Ann','女')
- b = Person('Bob','男')
- print(Person.country)
- c.country = '大清' # 大坑,没有修改类变量
- print(c.country) # 类变量可以给对象使用
- print(b.country)
- class Computer:
- #实例方法(成员方法)
- def play(self):
- print('电脑可以玩游戏')
- # 在定义实例方法的时候,必须给出一个参数self
- # 形参的第一个参数,自动的把对象给传递进来
- def work(self): # self是当前类的对象
- print(self)
- print('电脑可以用来工作')
- c = Computer()
- c.work() # 调用的时候不需要手动的给出self
- print(c)
- class Person:
- # 实例方法
- def eat(self):
- print('吃遍山珍海味')
- @classmethod # 装饰器,此时这个方法是一个类方法
- def talk(cls): # 此时接收到的cls是类名
- print('自言自语')
- # # 用对象访问
- # s = Person()
- # s.talk() # 在调用类方法的时候,默认的把类名传递给类方法
- # print(Person)
- # 类方法一般用类名访问
- Person.talk() # 类方法
- class Quit:
- @staticmethod
- def meet():
- print('会议保持安静')
- # 静态方法可以使用对象访问,也可以使用类名访问,但是一般推荐使用类名访问
- c = Quit()
- c.meet()
- # 推荐使用类名访问
- Quit.meet()
- class Person:
- __qie = 'beauty'
- def __init(self,name,secret):
- self.name = name
- self.__secret = secret # 私有内容 实例变量
- def tell(self):
- print(f"你的秘密是{self.__secret}")
- print(Person.__qie) # 私有的类变量只能在类中调用
- return self.__secret
- def __dream(self): # 私有的实例方法
- print('我的梦想是..')
- @staticmethod
- def __think():
- print('小心思')
- @classmethod
- def __work(cls):
- print('个人工作')
- p =Person('zhangmeng','过去的生活')
- # print(p.__secret) # 私有的内容只能在类中调用
- #
- # p.tell()
- # print(Person.__qie)
- # p.__dream()
- # Person.__work()
- class Person:
- def __init__(self,name,hobby,birth):
- self.name = name
- self.hobby = hobby
- self.birth = birth
- # 年龄应该是算出来的,而不是直接存储
- @property # 把一个方法更改成一个属性,每次拿属性的时候都会自动的去执行这个方法
- # 方法的返回值就是属性值
- def age(self): # 实例方法
- print('我的年龄')
- return 2018 - self.birth
- c = Person('zhangmeng','dance',1999)
- # c.age
- print(c.age) # 看着像一个变量一样使用,实际上这里是调用的一个方法
- # c.age = 26 # 不可以,因为age是一个方法,不是一个变量
- class Person:
- __qie = 'beauty'
- def __init(self,name,secret):
- self.name = name
- self.__secret = secret # 私有内容 实例变量
- def tell(self):
- print(f"你的秘密是{self.__secret}")
- print(Person.__qie) # 私有的类变量只能在类中调用
- return self.__secret
- def __dream(self): # 私有的实例方法
- print('我的梦想是..')
- @staticmethod
- def __think():
- print('小心思')
- @classmethod
- def __work(cls):
- print('个人工作')
- p =Person('zhangmeng','过去的生活')
- # print(p.__secret) # 私有的内容只能在类中调用
- #
- # p.tell()
- # print(Person.__qie)
- # p.__dream()
- # Person.__work()
python -- 面向对象-成员的更多相关文章
- python 面向对象(成员,静态,类)的(变量,方法)区别
静态方法是使用@staticmethod装饰的方法,并且参数表中不需要self或者cls,可以访问类成员变量 默认的方法是有self的,是成员方法,可以访问私有变量和方法(通过self.xxx),或者 ...
- Python面向对象(成员修饰符)
day25 成员修饰符 class Foo: def __init__(self, name, age): self.name = name self.__age = age#私有,外部无法直接访问 ...
- Python面向对象(成员)(二)
1. 成员 在类中你能写的所有内容都是类的成员 2. 变量 1. 实例变量: 由对象去访问的变量. class Person: def __init__(self, name, id, gender, ...
- python 面向对象和类成员和异常处理
python 面向对象 你把自己想象成一个上帝,你要创造一个星球,首先你要把它揉成一个个球,两个直径就能创造一个球 class star: '''名字(name),赤道直径(equatorial di ...
- python面向对象(二)——类成员
Python面向对象 类成员 1.字段 普通字段 属于对象 静态字段 属于类 2.方法 普通方法 触发者是对象 括号里至少一个参数 se ...
- python 面向对象(类的特殊成员)
python 面向对象: (思维导图 ↑↑↑↑) 类的特殊成员 python的类成员存在着一些具有特殊含义的成员 1.__init__: 类名() 自动执行 __init__ class Foo(ob ...
- Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass
Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...
- python 面向对象专题(五):私有成员、类方法、静态方法、属性、isinstance/issubclass
https://www.cnblogs.com/liubing8/p/11325421.html 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubc ...
- 『无为则无心』Python面向对象 — 51、私有成员变量(类中数据的封装)
目录 1.私有成员变量介绍 (1)私有成员变量概念 (2)私有成员变量特点 (3)私有成员变量体验 2.属性私有化工作原理 3.定义成员变量的标识符规范 4.私有成员变量的获取和设置方式 1.私有成员 ...
随机推荐
- postman 做接口测试之学习笔记
Postman 之前是作为Chrome 的一个插件,现在要下载应用才能使用. 以下是postman 的界面: 各个功能区的使用如下: 快捷区: 快捷区提供常用的操作入口,包括运行收藏夹的一组测试数据, ...
- 关闭图形界面下普通用户关机重启命令- 7.x - CentOS
vim /etc/polkit-/rules.d/-inhibit-shutdown.rules polkit.addRule(function(action, subject) { if (acti ...
- ubuntu(centos) server安装vmware tools
Ubuntu: root登录ubutun $ sudo su vmware中选择菜单虚拟机->安装VMware Tools 命令行如下 // 将cdrom挂载到mnt $ mount -t is ...
- angularjs 绑定多个属性到下拉框
绑定下拉框 angularjs 代码: //活动下拉切换 $scope.activityChange = function () { var cards = new Array(); var url ...
- 知识在与温故、总结-再读CLR
序 CLR,通用语言运行时,每个.Net 程序猿,都会第一时间接触到.记得2008年,第一次学习Jeffrey Richter的CLR Via C#,读的懵懵懂懂,大抵因为编码太少,理解的只是概念和皮 ...
- 石家庄铁道大学课程信息管理系统(javaWeb+servlet+Mysql)
实现网页版的课程管理系统,具有增删改查的功能. 1.首先连接数据库,具体数据库的使用及如何连接eclipse,参考 https://blog.csdn.net/lrici/article/de ...
- jQuery属性attr
设置多个属性/值对 为被选元素设置一个以上的属性和值. 语法 $(selector).attr({attribute:value, attribute:value ...})比如:$("im ...
- web前端开发常用组件
web前端开发常用组件 1. 对话框(dialog):jbox(适合对话框等其它功能).colorbox(也很强大,可以弥补jbox图片轮播的落点), 这二者基本能搞定所有对话框的情况 2. ...
- Html lable 标签
Html lable 标签 <html> <body> <!-- label 关联光标标签,点击文字使得关联的标签获取光标.for="username" ...
- Linux 高级文件管理
1.标准输出(ls -l /dev/stdin 0 ),标准输入(ls -l /dev/stdout 1 ),错误输出(ls -l /dev/stderr 2 ). 2.ls /etc/passwd ...