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.私有成员 ...
随机推荐
- Spark Streaming之窗口函数和状态转换函数
流处理主要有3种应用场景:无状态操作.window操作.状态操作. reduceByKeyAndWindow import kafka.serializer.StringDecoder import ...
- Cocos Creator 鼠标事件
鼠标事件// 使用枚举类型来注册node.on(cc.Node.EventType.MOUSE_DOWN, function (event) {console.log('Mouse down');}, ...
- scrapy的安装
python --version 2.7.12版本. 1) 首先在交互模式下测试系统是否安装lxml和OpenSSL 2) 安装lxml,apt-get install python-lxml, ...
- 【软件工程1916|W(福州大学)_助教博客】团队第一次作业成绩公示
题目 第一次作业 评分准则: 队名(最好能够体现项目内容,要求有亮点与个性):(1分) 拟作的团队项目描述:一句话(中英文不限):(1分) 队员风采:介绍每一名队员,包括成员性格.擅长的技术.编程的兴 ...
- Java Hello World源代码notepad++版
Notepad++中写Java Hello World代码并运行,步骤如下: 1. 在E:\CodeDemo\Java文件夹下(你也可以选择自己的文件夹)新建一个txt文本文件. 如果没有NotePa ...
- 一定要知道的,那些Linux操作命令
一定要知道的,那些Linux基本操作命令(一) 目录 1.文件和目录操作命令 2.用户和用户组操作命令 3.vim编辑器操作命令 4.打包和解压操作命令 5.系统操作命令 为什么要学习linux? 1 ...
- Oarcle 入门之 order by 关键字
order by 关键字 作用:用于对查询结果进行排序 select * from emp where deptno = 20 order by sal asc /desc; 如何排序之升降问题 *用 ...
- Spring 集成 Swagger UI
<!-- Spring --> <dependency> <groupId>org.springframework.boot</groupId> < ...
- codeforces #305 E Mike and friends
原问题可以转化为:给定第k个字符串,求它在L-R的字符串里作为子串出现了多少次 定义子串为字符串的某个前缀的某个后缀(废话) 等价于我们把一个字符串插入到trie里,其过程中每个经过的节点和其向上的f ...
- 自制操作系统Antz(6)——内核初步,引入c语言
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs. ...